hi leute,
ich bin neu auf der seite und hab mich mal ein bisschen durch eure tutorials gelesen. dabei hab ich, weil ich nen php anfänger bin, ein gästebuch zusammengebaut.
hier die file:
die probleme die dabei auftreten sind folgende:
- wenn man die seite aufruft erstellt sich immer wieder ein leerer eintrag = nervig - wie bekommt man das weg? (bitte für anfänger erklärt
- und vll eine abfrage einbauen, ob die felder leer sind ...
es wäre nett wenn ihr mir so schnell wie möglich antworten könntet, will da weiter machen
mfg
ich bin neu auf der seite und hab mich mal ein bisschen durch eure tutorials gelesen. dabei hab ich, weil ich nen php anfänger bin, ein gästebuch zusammengebaut.
hier die file:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Gaestebuch</title>
</head>
<body>
<form action="<?php echo $PHP_SELF ?>" method="post" name="eintragung"> <!-- Anfang des Formulars -->
<!-- eingabefelder -->
<table width="413" height="208" border="0">
<tr>
<td width="133">Name:</td>
<td width="264"><input type="text" name="name" size="25"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email" size="25"></td>
</tr>
<tr>
<td>Homepage:</td>
<td><p>
<input type="text" name="homepage" size="25">
<br>
</p> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Message :</td>
<td><textarea name="message" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td> </td>
<td> <input type="submit" name="neueintrag" value="Eintragen">
<input name="reset" type="reset" value="Löschen"></td>
</tr>
</table>
<p> </p>
</form>
<?php
// Zunächst brauchen wir eine Datenbankverbindung:
$verbindung = mysql_pconnect( "xxx", "xx", "xxxx");
if (!$verbindung) // War die verbindung NICHT erfolgreich? -> Wenn ja: Fehler auswerfen und beenden
{
echo "<br><center><b>- Keine Verbindung zur Datenbank -</b></center>";
exit;
}
mysql_select_db("formular"); //Datenbank auswählen in die geschrieben werden soll
//ueberprueft ob der submit button gedrückt wurde
{ //Wenn ja dann daten in den guestbook table eintragen
$id = time(); //time() gibt die zeit seit dem beginn des Unix Zeitalters in sekunden zurück
//wir benutzen id als Datums und Identifikations-Angabe, doch mehr dazu später
$name = addslashes($name); //Zeichen die im Programm Probleme verursachen könnten in PHP Spezialzeichen umwandeln
$email = addslashes($email); // -"-
$homepage = addslashes($homepage); // -"-
$message = addslashes($message); // -"-
$sqlkommando = "INSERT INTO guestbook (id, name, email, homepage, message) VALUES ('$id', '$name', '$email', '$homepage', '$message')";
// Auf gut deutsch: Füge in guestbook bei "id, name, email, homepage, message" die werte der variablen "$id, $name, $email, $homepage, $message" ein
mysql_query($sqlkommando) or die("Error: " . mysql_error()); // Kommando 'sqlkommando' ausfuehren
// bei misserfolg beenden und fehlermeldung ausgeben
echo "Eintragung erfolgreich hinzugefügt"; // Bestätigung ausgeben
}
?>
<?php
$sqlkommando = "SELECT * FROM guestbook ORDER BY id DESC";
// Auf gut deutsch: Nimm aus allen feldern in table 'guestbook' die Daten und sortiere sie absteigend nach 'id'
// Hier haben wir die Wahl zwischen ASC und DESC als Sortierungsreihenfolge
// ASC = von 1-9 und A-Z
// DESC = von Z-A und 9-1
// da 'id' eine zeitangabe beinhaltet werden die felder hier absteigend nach datum sortiert, der neuste eintrag steht also
// folglich ganz oben
$sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error()); // $sqlanfrage auf das Kommando:" 'sqlkommando' ausfuehren" setzen
// bei misserfolg beenden und fehlermeldung ausgeben
while($daten = mysql_fetch_object($sqlanfrage)) // Solange wie daten ausgelesen werden können sollen
{ // sie in das Objekt '$daten' geladen und die folgende
// schleife ausgegeben werden
$datum = getdate($daten->id); // Datum aus 'id' konvertieren und in das 'datum' array packen
echo "Eintrag von ". stripslashes($daten->name) ."\n<br>"; // PHP sonderzeichen entfernen und name ausgeben
echo "Email: <a href=\"mailto:".stripslashes($daten->email)."\">".stripslashes($daten->email)."</a>\n<br>";
echo "Homepage: ".stripslashes($daten->homepage)."\n<br>";
echo "Geschrieben: $ndate[weekday] - $ndate[mday]/$ndate[mon]/$ndate[year] $ndate[hours]:$ndate[minutes]"; // Datum ausgeben (Englisch siehe Moartel Tutorial)
echo "<br>";
echo "Kommentar: <br>";
echo nl2br(stripslashes($daten->message)); //nl2br = Zeilenumbrüche in HTML-Umbrüche (<br>) umwandeln
echo "\n<br><br>\n";
}
?>
</body>
</html>
die probleme die dabei auftreten sind folgende:
- wenn man die seite aufruft erstellt sich immer wieder ein leerer eintrag = nervig - wie bekommt man das weg? (bitte für anfänger erklärt
- und vll eine abfrage einbauen, ob die felder leer sind ...
es wäre nett wenn ihr mir so schnell wie möglich antworten könntet, will da weiter machen
mfg