Peter: Gästebuch in PHP

Beitrag lesen

Hallo!

Ich bin gerade dabei ein Gästebuch mit Administratorfunktion (zum Löschen von Beiträgen etc.) in PHP zu "programmieren".

Da ich mir versehentlich die funktionierende stabile Version gelöscht habe (und nirgendwo Sicherungen gemacht habe), habe ich mich dazu aufgerafft das Ganze neu zu schreiben.

Ich handhabe es jetzt so, dass eine strikte Trennung von PHP und HTML vorliegt bzw. auch jede Funktion eine eigene *.php Datei bekommt - unter anderem auch die Login-Funktion, die das Passwort und den Usernamen auf seine Gültigkeit hin prüft. Aussehen tut diese so: [wird mit require() in der Hauptdatei eingebunden]

[code:lang=php]
if(isset($_POST['username']) && $_POST['username'] == $username && isset($_POST['password']) && $_POST['password'] === $password)
 {
   session_start();
   $_SESSION['adm'] = true;
   $title = "Administratorbereich";
   $gb_title = "Administratorbereich";
   $gb_text = "Sie wurden erfolgreich als Administrator eingeloggt!";
   $sub_text = "...ode wollen Sie sich <a href="logout.php" class="gb_link">ausloggen</a>?";
   $_replace = array(
     $title, $gb_title, $gb_text, $sub_text
   );
   echo str_replace($_search, $_replace, $_handle);
 }
 elseif(isset($_POST['username']) && $_POST['username'] != $username)
 {
   $title = "Administratorbereich";
   $gb_title = "Administratorbereich";
   $gb_text = "Sie konnten nicht eingeloggt werden, da der Benutzername ungültig ist.";
   $sub_text = "...was da?";
   $_replace = array(
     $title, $gb_title, $gb_text, $sub_text
   );
   echo str_replace($_search, $_replace, $_handle);
 }
 elseif(isset($_POST['password']) && $_POST['password'] !== $password)
 {
   $title = "Administratorbereich";
   $gb_title = "Administratorbereich";
   $gb_text = "Sie konnten nicht eingeloggt werden, da das Passwort ungültig ist.";
   $sub_text = "...was da?";
   $_replace = array(
     $title, $gb_title, $gb_text, $sub_text
   );
   echo str_replace($_search, $_replace, $_handle);
 }
[/code]

($_handle = file_get_contents('../html/template.html');

So wie der Code oben steht funktioniert er.
Allerdings kommt mir das Ganze etwas "ungelenk" geschrieben vor. - Meine Frage daher, ob ich den Code irgendwie kürzen kann oder "vereinfachen"... (ich kann mir z.b. nicht vorstellen, dass ich in jedem Zweig ein echo str_replace oder das $_replace angeben muss...)

Jedenfalls würde ich mich über Antworten freuen.

Gruss
 Peter