gästebuchscript

das gästebuch von sascha hab ich von hier (n bisschen angepasst), wenn man keinen bock hat jedesmal in phpmyadmin die einträge zu editieren/löschen fehlt natürlich noch ein entsprechender admin-bereich. mein modifziertes script und das “backend” stell ich hier dann mal rein.

wie gesagt, ist komplett einfach gehalten, aber funktioniert. ne blätterfunktion wär vielleicht noch ganz nett.

gaestebuch.phps (bitte folgenden code nicht copy&pasten, wegen den typografischen anführungszeichen)


<?php /*begin sqlquery*/
$DBHost   = “localhost”;
$DBName   = “fapeg”;
$DBUser   = “hier-user-eintragen”;
$DBPasswd = “hier-passwd-eintragen”;

// Verbindug zu DB-Server herstellen
mysql_connect($DBHost, $DBUser, $DBPasswd)
    OR die(”Konnte DB-Server nicht
erreichen”);
mysql_select_db($DBName);

if (isset($_GET["submit"])){
// Der Submit - Button wurde gedrückt
//           
-> die Werte müssen überprüft
// und bei Gültigkeit in die DB eingefügt werden

  // wir gehen von der Gültigkeit der Daten aus
  $DatenOK = true;

  // es gab noch keine Fehlermeldung
  $error = “”;

  if (empty($_GET["name"])){
    // es wurde kein Name eingegeben
    $DatenOK = 0;
    $error .= “Es muss ein Name eingegeben
werden.<br>\n”;
    echo “<p>” . $error .
“</p>”;
    $daten["name"] = “”;
  }
  else {
    $daten["name"] = $_GET["name"];
    $daten["name"] =
htmlspecialchars($daten["name"]);
  }

  if (empty($_GET["eintrag"])){
    // es wurde kein Komementar eingegeben
    $DatenOK = 0;
    $error = “Ein Eintrag ohne Kommentar
macht nicht viel”;
    $error .= ” Sinn,
oder?<br>\n”;
        echo
“<p>” . $error . “</p>”;
    $daten["eintrag"] = “”;
  }
  else {
    $daten["eintrag"] = $_GET["eintrag"];
    $daten["eintrag"] =
htmlspecialchars($daten["eintrag"]);
  }
    
    if ($_REQUEST["website"]!=”7″)
//überprüfen ob Rechenaufgabe richtig gelöst
wurde (siehe weiter unten)
{
    $DatenOK = 0;
    $error = “Bitte gib die richtige
Lösung der Spamschutzaufgabe an.<br>\n”;
        echo
“<p>” . $error . “</p>”; }
  if ($DatenOK){
    // Daten waren OK -> also in DB
eintragen
    mysql_query(sprintf(’insert into meldung
                               
(datum,name,eintrag)
                        
VALUES (now(),”%s”,”%s”)’,
      
     addslashes($daten["name"]),
      
   
 addslashes($daten["eintrag"])));
    echo mysql_error();

    // Alles eingetragen
    header(’Location:
http://sascha.fapeg.com/GB.php’);
    //-> fertig

    die();
  }

}
else {
  $daten["name"] = “”;
  $daten["eintrag"] = “”;
}
?>

<!– end sqlquery –>
<html>
<head>
<title>Saschas HP</title>
</head>
<body text=”44cc44″ bgcolor=”000000″
background=”http://images.bigoo.ws/content/background/color_dark_blue/color_dark_blue_197.jpg”>
<h2>Gästebuch</h2>
Willkommen im GB!
THX an fapeg für die Erstellung ;)
<br><br>
<!– begin input –>

<?php
if ($submit && !$DatenOK){
  // Das Formular wurde schon abgeschickt aber die Daten
  //  waren nicht OK
  // -> Fehlermeldung ausgeben
  echo “<h2>Fehler:</h2>\n”;
  echo $error;
}

// Formular anzeigen
?>
<form action=”<?php echo $_SERVER["PHP_SELF"];?>”
      method=”GET”
name=”gbedit”>
Name:
<input style=”background-color: black; border:2px solid #44cc44;
color: #44cc44;” type=”text” name=”name” size=”30″ maxlength=”200″
 value=”<?php echo $daten["name"]; ?>”>
<br>
Text:<br>
<textarea style=”background-color: black; border:2px solid
#44cc44; color: #44cc44;” rows=”10″ cols=”50″ wrap=”virtual”
name=”eintrag”>
<?php echo $daten["eintrag"]; ?>
</textarea>
<?php
/* Es folgt ein Spamschutz, von dem der User bei eingeschaltetem
JavaScript nichts mitkriegt, dann wird das Feld der Rechenaufgabe
automatisch ausgefüllt. Bei ausgeschaltetem JavaScript wird
ein Feld mit der Rechenaufgabe angezeigt. Diese Methode soll den Schutz
vor Spambots erhöhen (zur zusätlichech Verwirrung
heisst das Feld “website”). */
?>
<script>document.write(”<div style=’display: none;
background-color: black; border:2px solid #44cc44; color:
#44cc44;’>”)</script><br>Spamschutz
- Berechne 5+2:<br><input type=”text”
name=”website” id=”ab” style=”background-color: black; border:2px solid
#44cc44; color:
#44cc44;”><script>document.getElementById(”ab”).value
= 7;document.write(”</div>”)</script>
<?php
//Spamschutz Ende
?>
<br><br>
<input style=”background-color: black; border:2px solid #44cc44;
color: #44cc44;” type=”submit” name=”submit”
value=”abschicken”></form>

<!– end input –>
<!– begin output –>

<?php

$res = mysql_query(’select id, datum, name, eintrag
                   
from meldung
                   
order by datum desc’);
echo mysql_error();

while ($row = mysql_fetch_array($res)){
    echo “<a name=’eintrag” .
$row["id"] .”‘></a><div style=’border: 1px
solid #44cc44;’>\n”;
/*für jeden Eintrag wird ein div erstellt, außerdem
gibt es eine Sprungmarke, wenn man sich mal auf einen bestimmten
Beitrag beziehen will(Bsp.: …GB.php#eintrag42)*/
   
printf(”<em>%s</em> schreibt am\n”,
      
stripslashes($row["name"]));
    //Hier wird das Datum deutsch formatiert
(geht bestimmt auch einfacher ;))
    $exp=explode(” “, $row["datum"]);
    $dat=$exp[0];
    $tim=$exp[1];
    $edat=explode(”-”, $dat);
    $year=$edat[0];
    $month=$edat[1];
    $day=$edat[2];
    $etim=explode(”:”, $tim);
    $hour=$etim[0];
    $minute=$etim[1];
    //Datumsformatierung Ende
  echo $day .”.”. $month .”.”. $year . ” um ” . $hour . “:”.
$minute . ” Uhr:\n”;
    printf(”<br>\n”);
   
printf(”<blockquote>%s</blockquote>\n”,
      
nl2br(stripslashes($row["eintrag"])));
    echo
“</div><br>\n”;
}
mysql_close();
?>
<hr></body>
</html>
<!– end output –>

backend.phps (bitte folgenden code nicht copy&pasten, wegen den typografischen anführungszeichen)

<?php

$DBHost   = “localhost”;
$DBName   = “fapeg”;
$DBUser   = “hier-user-eintragen”;
$DBPasswd = “hier-passwd-eintragen”;

// Verbindug zu DB-Server herstellen
mysql_connect($DBHost, $DBUser, $DBPasswd)
     OR die(”Konnte DB-Server nicht
erreichen”);
mysql_select_db($DBName);

?>

<html>
<head>

<title>GB-Einträge
ändern</title>
</head>
<body>
<h1>Gästebuch-Adminbereich</h1><div
align=”right”><a href=”http://sascha.fapeg.com/GB.php”
target=”_blank”>zum
Gästebuch</a></div>
<?php if(isset($_REQUEST["id"]) &&
!isset($_REQUEST["del"])){
/*überprüfe ob das Formular abgeschickt wurde und man
nicht auf den Löschen-Knopf gedrückt hat*/
$formularsent = true;
}
if($formularsent==true){
 $sql = ‘UPDATE `meldung` SET `datum` = \”;
 $sql .= $_REQUEST["datum"];
 $sql .= ‘\’, `name` = \”;
 $sql .= $_REQUEST["name"];
 $sql .=’\', `eintrag` = \”;
 $sql .= $_REQUEST["eintrag"];
 $sql .= ‘\’ WHERE `id` = \”;
 $sql .= $_REQUEST["id"];
 $sql .= ‘\”;
mysql_query($sql);
echo mysql_error();
echo
“<center><strong><big>Eintrag
von ” . $_REQUEST["name"] . ” erfolgreich
geändert.</big></strong></center>”;
///////echo “<div>”.$sql.”</div>”;
}
if(isset($_REQUEST["del"])){
/*hier wird der komplette Eintrag gelöscht, vorher wird jedoch
nachgefragt (wenn JavaScript eingeschaltet ist, siehe weiter unten)*/
$sql = ‘DELETE FROM `meldung` WHERE `id` =’;
$sql .= $_REQUEST["id"] .’ LIMIT 1;’;
mysql_query($sql);
echo mysql_error();
echo
“<center><strong><big>Eintrag
von ” . $_REQUEST["name"] . ” erfolgreich
gelöscht.</big></strong></center>”;
}
?>
<?php

$res = mysql_query(’select id, datum, name, eintrag
                   
from meldung
                   
order by datum desc’);
echo mysql_error();
/*Alle Einträge anzeigen*/
while ($row = mysql_fetch_array($res)){
    echo
“<div><br><form name=’gbedit’
method=’get’>\n”;
    printf(”<input type=’hidden’
name=’id’ value=’%s’>\n”, $row["id"]);
    printf(”Name:<input type=’text’
name=’name’ value=’%s’><br>\n”,
      stripslashes($row["name"]));
    printf(”Datum:<input type=’text’
name=’datum’ value=’%s’><br>\n”,
       $row["datum"]);
   
printf(”Eintrag:<br><textarea rows=’10′
name=’eintrag’ cols=’50′ wrap=’virtual’>\n”);
   
printf(”%s</textarea><br>\n”,
      
stripslashes($row["eintrag"]));
    echo “<input type=’submit’
value=’Eintrag ändern’ style=’font-weight: bold;’>
<strong>|</strong> <input
type=’submit’ value=’kompletten Eintrag löschen?’ name=’del’
onclick=’return confirm(\”Eintrag von ” . $row["name"]. ” wirklich
löschen?\”)’></form></div><br><hr>\n”;
}
mysql_close();
?>
<hr>

</body>
</html>

Leave a Reply