Gästebuch in PHP
Peter
- php
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
echo $begrüßung;
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...)
Du könntest die Variablen bevor du die Vergleiche anstellst grundinitialisieren oder mit einem sinnvollen Standardwert belegen. Wenn keine der drei if-Anweisungen true ergibt sind deine Variablen einfach nicht vorhanden und erzeugen Folgefehler.
Variablen, dessen Standard-Wert innherhalb einer if-Verzweigung nicht geändert zu werden braucht, müssen dann natürlich auch nicht dort auftauchen.
Anweisungen die in allen drei Zweigen gleich sind, also in jedem Fall (else eingeschlossen) ausgeführt werden sollen, können auch einmalig unterhalb des if-Konstrukts aufgeführt werden.
echo "$verabschiedung $name";
Hallo,
kann man das Gästebuch mal komplett sehen? Mich würde das mal interssieren :-)
Gruß Knuffel82
Hallo!
kann man das Gästebuch mal komplett sehen? Mich würde das mal interssieren :-)
Schon. Aber erst nachdem ich es fertig neu geschrieben habe. Habe ja erwähnt dass ich es mir ja versehentlich gelöscht hatte...
Gruss
Peter