Trennung php und html

Kalito

Erfahrenes Mitglied
Hallo,

ich bastle gerade so ein bisschen mit OOP rum und hab noch eine Frage. Ab und zu habe ich gesehen, das man die html-Datei komplett vom php-Code trennt.
Also etwa so:

HTML:
<form mthod="post">
Benutzername: <input type="text" name="user" />
Passwort: <input type="password" name="passwort" />
<input type="submit" name="login" />

Diese wird dann nur im Fall der Notwendigkeit angezeigt.

Was ich nur nicht verstehe, wie ich meine Klasse bauen muss, damit er das Submit bearbeiten kann. Reicht es wirklich das wenn ich die Klasse auf der Hauptseite includiere, dann ein login->show_logintemplate ausführe, bei dem das template geladen wird und im Constructor der Klasse ein isset auf die Post-Variablen mache?
Etwa so:
PHP:
public function __construct($sessionid){
		$this->dbconnection = new DB_MySQL();
		
		if (isset($_POST['login'])===true && 
            isset($_POST['username'])===true && 
            isset($_POST['userpass'])===true){
 
			 $this->name = $_POST['username'];
			 $this->passwort = $_POST['userpass'];
			 $this->login();
			 return true;
		}

Gruß

Bisher hab ich nur gesehen, das ich in meiner html-Datei trotzdem immer noch die Klasse ein isset einbauen. Grob etwa so:
PHP:
 isset($_Post['login'])?login->check() : login->error();
 
Du musst auf der Heubseite eine Instanz deiner Klasse anlegen. Dann gehts da ja automatisch durch die Methode __construct. Und somit wird $_POST ausgewertet.
 
Hey,

sieh dir mal Tutorials über "MVC PHP HTML" an.
Gibt nette HowTos, in denen dies erklärt wird.

Bei dem Muster wird das Design/Ausgabe und die eigentliche Programmlogik getrennt.

Z.B.
http://tutorials.lemme.at/mvc-mit-php/

Falls du dann noch Fragen hast, können wir sie dir beantworten ;)

mfg
bo
 
MVC ist ein gutes Stichwort, aber auch nicht das Allheilmittel. :)

Mal als kleine Anmerkung von mir:
Ich habe PHP und HTML früher auch komplett getrennt und kann Dir davon nur abraten.
Mach nicht den Fehler und nutze Smarty oder schreib einen eigen Tamplateparser mit Konstruktionen wie {PLATZHALTER} (so wie ich^^) oder sowas.

Bau Dir lieber gleich ein Tamplatesystem wo Du .php Dateien includierst.
Hat den Vorteil, Du kannst Abfragen, Schleifen und alle anderen PHP-Mittel voll ausschöpfen kannst ohne das Template nochmal parsen zu müssen.

Das Trennen von PHP und HTML kommt ja eher daher, dass man die Präsentationsschicht und die Daten-/Businessschichten trennen sollte.

Gruß

//EDIT
Grad mal angesehen:
So wie er mit seinen Templates arbeitet meine ich.
 
Zuletzt bearbeitet:
Hallo,

Habe mir mal das Tutorial zu Gemüte gezogen, aber bei einigen Sachen steige ich noch nicht so richtig durch.
Mir ist ganze recht starr aufgebaut. Hatte eine Zweite Seite erstellt, die aber andere Werte enthalten soll. Doch musste ich im Model und im Controller die Werte in den Funktionen ändern. Zudem muss ich ja trotzdem bei knapp 40 Seiten alle in diese switch-case einfügen.

Ich habe es mir so gedacht, das ich in der eigentlichen Klasse erst das Template definiere und dann über das MVC dann die Klasse anzeigen lasse.

PHP:
protectet $strtemplate = "testtemplate";
$daten = array(irgendwelche Daten);
$this->Template->data = $daten;

Versuch noch bissel daran rumzuschrauben :)
 
Zurück