Hallo Leute,
hab mal ne Frage zu einem Gästebuch, aber ich glaub ich schreib erstmal den Code hin:
Das gehört in die Datenbank
Code
CREATE TABLE `simplegb` (
`id` INT NOT NULL AUTO_INCREMENT ,
`von` TEXT NOT NULL ,
`eintrag` MEDIUMTEXT NOT NULL ,
`datum` TEXT NOT NULL ,
`email` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
);
Das ist die Datei template.html
Code
Von: {von} - Email: [url='mailto: {email}']{email}[/url] - Am: {datum}
<hr>
{eintrag}{delete_link}
<hr>
Und das ist die Datei index.php
PHP
<?php
//////////////////////////
////// Mysql sachen //////
$database= "xxx"; //Datenbankname
$sqlhost= "xxx"; //mySQL Hostname (meistens "LOCALHOST")
$sqluser= "xxx"; //mySQL Username
$sqlpass= "xxx"; //mySQL Passwort
$db_link = @mysql_connect($sqlhost,$sqluser,$sqlpass); // verbindung zum sql server
if(!$db_link) { echo "Es konte keine Verbindung zum gewählten Sql Server aufgebaut werden."; exit; }; // wenn keine verbindung ...
if($db_link) { // wenn ja:
if(!mysql_select_db($database)) { echo "Es Konnte keine Verbindung zur Datenbank aufgebaut werden."; exit; }; // prüfen ob verbindung zur datenbank besteht.
};
/////////////////////////////
//wichtige Variablen setzen//
$datum_format = "%H:%M %d.%m.%Y"; // formatierung der Datums ausgabe
$template_file = "template.html"; // template datei
$adminpw = "admin"; // passwort zum löschen von einträgen
$fp = fopen($template_file,"r"); // teamplate zum lesen(r) öffnen
$template = fread($fp,filesize($template_file)); // inhalt der template datei in die teamplate variable laden.
$template2 = $template;
///////////////////////////////
///// Eintrag löschen teil ////
if($_GET['delete'] == 1 and $_GET['id'] != "") { // wenn delete gesetzt ist und id auch ...
$id = $_GET['id'];
echo "Eintrag mit der id: $id wirklich löschen?
<form action='?id=$id' method=post>
<input type=password name=pwd>
<input name=del type=submit value='Ja Eintrag entfernen'>
</form>"; // pw abfrage vor dem löschen
exit; // script ende
};
if($_POST['del'] != "" and $_GET['id'] != "") { // wenn del übers formular einen wert hat und id auch ...
$pwd = $_POST['pwd']; // einggebenes PW besorgen
$id = $_GET['id']; // id besorgen
if($pwd == $adminpw) { // eingegebenes pw mit gesetztem admin pw vergleichen wenn beide gleich:
$sql = mysql_query("DELETE FROM `simplegb` WHERE id = $id"); // sql befehl zum löschen
if($sql) { echo "Eintrag wurde gelöscht.
"; } else { echo "Eintrag konnte nicht gelöscht werden.
"; };
} else { echo "Falsches Passwort.
"; exit; }; // wenn pws verschieden ...
};
///////////////////////////////
////////// EINTRAGEN SCript////
if(isset($_POST['absenden'])) { // wenn formular abgesendet wurde:
$von = $_POST['von']; // variable besetzten(wert holen)
$email = $_POST['email']; // variable besetzen(wert holen)
$eintrag = $_POST['eintrag']; // variable besetzen(wert holen)
$datum = time(); // aktuellen timestamp holen fürs einzutragende datum
if($von == "" or $eintrag == "") { echo "Sie müssen mindestens Von und Eintrag ausfüllen um sich einzutragen.
"; } else { // solte verständlich sein
$sql = mysql_query("INSERT INTO `simplegb` ( `id` , `von` , `eintrag` , `datum` , `email` ) VALUES ('', '$von', '$eintrag', '$datum', '$email');"); // sql eintragen querry
if($sql) {
echo "Sie haben sich erfolgreich eingetragen.
";
} else {
echo "Es ist ein Fehler aufgetreten sie konnten nicht eingetragen werden.
";
};
};
};
//////////////////////////////////
////////// Auslesen der einträge//
$sql = mysql_query("SELECT * FROM `simplegb` ORDER BY id DESC"); // Mysql select befehl
while($row = mysql_fetch_assoc($sql)) { // läd bei jedem durchgang(immer die nächste) eine zeile aus der tabelle in einen array in die variable $row
$id = $row['id']; // wert der spalte id der jeweiligen spalte als variable speichern
$von = $row['von']; // wert der spalte von der jeweiligen spalte als variable speichern
$email = $row['email']; // wert der spalte email der jeweiligen spalte als variable speichern
$eintrag = $row['eintrag']; // wert der spalte eintrag der jeweiligen spalte als variable speichern
$datum = $row['datum']; // wert der spalte datum der jeweiligen spalte als variable speichern
$delete_link = "[url='?delete=1&id=$id']löschen[/url]";
$eintrag = nl2br($eintrag); // /n ( new lines) in
umwandeln damit auch zeilenumbrüche ins html übernommen werden
$datum = strftime($datum_format,$datum);// datum mit in dem oben angegebenen format formatieren
$template = str_replace("{von}",$von,$template); // ersetze {...} durch $...
$template = str_replace("{email}",$email,$template); // ersetze {...} durch $...
$template = str_replace("{datum}",$datum,$template); // ersetze {...} durch $...
$template = str_replace("{eintrag}",$eintrag,$template); // ersetze {...} durch $...
$template = str_replace("{delete_link}",$delete_link,$template); // ersetze {...} durch $...
echo $template;
$template = $template2; // template wieder auf standart setzen
};
////////////////////////////////
/////// Eintragen Formular /////
echo "<form method=post >
<table border=0>
<tr>
<td>Von:</td>
<td><input type=text name=von></td>
</tr>
<tr>
<td>E-Mail:</td>
<td><input type=text name=email></td>
</tr>
<tr>
<td>Eintrag:</td>
<td></td>
</tr>
<tr>
<td></td>
<td><textarea cols=20 name=eintrag rows=10></textarea></td>
</tr>
<tr>
<td></td>
<td><input type=submit name=absenden value=Eintragen></td>
</tr>
</table></form>";
?>
Alles anzeigen
So jetzt zu meinem Problem. Ich möchte das GB so verändern, das jeder Gästebucheintrag einzelnt angezeigt wird und man so zu sagen mit vorheriger und nächster Eintrag durch die Einträgen jumpen kann. Wäre nett wenn ihr mir helfen könntet.