Hio,
ich habe mir einen kleinen PHP Code geschrieben, den ich gerne bei einem Gästebuch einsetzen würde.
Da ich noch sehr unerfahren im Skripten von PHP-Programmen bin, muss das ganze Ding bis jetzt auch noch ohne "echte" Datenbank auskommen, sondern nur mit einer Textdatei. Soweit ist das ja auch kein Problem und auch das Skript macht, was es soll. Doch eben dies ist das, was ich nicht so möchte.
Bevor das Formular, also der PHP Code ausgeführt wird, soll überprüft werden, ob alle Felder ausgefüllt sind, ansonsten soll das Programm die Ausführung einfach abbrechen. Jetzt habe ich mal etwas gegoogelt und bin auch auf eine methode gestoßen, wie ich überprüfen kann, ob die Felder leer sind oder nicht und dann entspr. abbreche oder eben nicht.
Leider hat dies nicht geklappt, da wenn ich empty auf TRUE setzte, ja das Skript sowieso ausgeführt wurde, bei "FALSE" aber überhaupt nichts geschah, auch wenn die Felder ausgefüllt waren.
Hier mein bisheriger Code:
<h3>Gästebuch</h3>
<form action="guestbook.php" method="POST">
Dein Name:</p>
<input type="text" name="Name" style="border:1px solid #5d5d5d;width:200px;height:25px;background:#201a1a;color:#999999;"></p>
Bitte gib deine Nachricht ein</p>
<input type="text" name="msg" size="20" style="border:1px solid #5d5d5d;width:400px;height:100px;background:#201a1a;color:#999999;"></p>
<input type="submit" value="absenden"></p>
</form>
<?PHP
$php_name = $_POST['Name']. "schrieb Folgendes:";
$php_msg = $_POST['msg'];
$php_ausgabe = "<div style='border:1px solid #5d5d5d;width:400px;margin-top:15px;padding:5px;'>
<ins>$php_name</ins></p>
$php_msg</p></div>";
$chatfile = 'msgs.txt';
if (is_writable($chatfile))
{
if (!$handle = fopen($chatfile, "a")) {
print "";
exit;
}
if (!fwrite($handle, $php_ausgabe)) {
print "";
exit;
}
print "";
fclose($handle);
} else {
print "Zugriff verweigert";
}
?>
<?PHP
include( "msgs.txt" );
?>
Alles anzeigen
Vielleicht kann mir ja hier jemand erklären, wie ich das Skript dazu bringe, den Code nur bei ausgefüllten Feldern auszuführen, denn so wird das Skript ja bei jedem Abruf ausgeführt, wodurch es dann auch die einzelnen Strings in den Variablenbezeichnungen ("z.B. "schrieb folgendes") postet. Wäre echt super!
Danke und
MfG Alienx