copyright (c)  2003   useGroup
PHP

Jochen Stärk
PHP-Tutorial
Ein Gästebuch

nach untenEine simple HTML-Datei
nach untenDer Datenbank-Aufbau
nach untenEintrag in die Datenbank
nach untenAusgabe in der HTML-Datei
nach untenDie Dateien in der Übersicht
nach untenToDo's

Eine simple HTML-Datei

nach obenEine simple HTML-Datei 

Zuerst müssen wir in einer HTML-Datei die Eingabe von Namen und Eintrag per Formular vorsehen. Die Datei bennenen wir in weise Voraussicht schonmal gaestebuch.php da wir beabsichtigen, später noch vor dem Formular die Gästebuch-Eintragungen auszugeben.

<html>
<body>
<table><!-- Hier kommt die Tabelle mit den bisherigen Einträgen rein -->
</table>
<form action="guestbook.php"><!-- Warum wir hier die eigene Datei angeben wird in Abschnitt 3 erklärt-->
Ihr Name:<input name="name"><br>
Ihr Eintrag:<textarea name="eintrag">
</textarea>        <br>
<input type=submit><input type=reset>
</form>

</body>
</html>


Der Datenbank-Aufbau

nach obenDer Datenbank-Aufbau 

Die Datenbank wird im wesentlichen dieselben Felder enthalten wie der Counter: Nämlich IP, Zeitpunkt und vorige Seite des Besuchers, zusätzlich jedoch noch Name und Eintrag des Absenders:

<html>
Starte Setup für Gästebuch....
<?php
$dbh = odbc_connect('testdb', 'aname', 'apwd', SQL_CUR_USE_ODBC);
echo "Connected to db $dbh<br>";
	
$query = "drop table guests";
$res = odbc_exec($dbh, $query);
$query = "create table guests (zeitpunkt int, ip char(15), refferer char(255), name char(50), eintrag long varchar)";
$res = odbc_exec($dbh, $query);
odbc_close_all();
?>
... beendet
</html>
  


Eintrag in die Datenbank

nach obenEintrag in die Datenbank 

Der Eintrag in die Datenbank erfolgt mir den Zeilen

  $dbh = odbc_connect('testdb', 'aname', 'apwd', SQL_CUR_USE_ODBC);
  $now = time();
  $ip = getenv("REMOTE_ADDR");
  $ref = getenv("HTTP_REFERER");
  $query = "insert into guests values ($now, '$ip', '$ref', '$name', '$eintrag')";
 if ($eintrag!="")
 {
   echo "Eingetragen";
   $res = odbc_exec($dbh, $query);
 }
Der Grund, warum ODBC_EXEC nur Aufgerufen wird ist, falls überhaupt die Variable Eintrag angegeben ist, der, dass wir so dieselbe Datei für Ein- und Ausgabe verwenden können. Ruft man gaestebuch.php ohne Parameter auf, wird nur der Inhalt der Datenbank angezeigt, trägt man einen Eintrag ein und wird geastebuch.php durch das Formular aufgerufen ist ja die Variable eintrag definiert- der neue Eintrag wird durchgeführt und gleich angezeigt. So vermeidet man Programmierfehler und fehlende Refreshs des Browsers.


Ausgabe in der HTML-Datei

nach obenAusgabe in der HTML-Datei 

Diese Aufgabe erweist sich als gewöhnliche Ausgabe einer Datenbank. Zusammen mit ein paar Tags zur Tabellenformatierung sieht das dann ungefähr so aus:

  $query = "select * from guests";
  $res = odbc_exec($dbh, $query);
  while (odbc_fetch_row($res))
  {
   $thename=odbc_result($res,"name");
   $theeintrag=odbc_result($res,"eintrag");
   echo "<tr><td>$thename</td><td>$theeintrag</td></tr>";
  }


Die Dateien in der Übersicht

nach obenDie Dateien in der Übersicht 

<html>
Starte Setup für Gästebuch....
<?php
$dbh = odbc_connect('testdb', 'aname', 'apwd', SQL_CUR_USE_ODBC);
echo "Connected to db $dbh<br>";
	
$query = "drop table guests";
$res = odbc_exec($dbh, $query);
$query = "create table guests (zeitpunkt int, ip char(15), refferer char(255), name char(50), eintrag long varchar)";
$res = odbc_exec($dbh, $query);
odbc_close_all();
?>
... beendet
</html>
<html>
<body>
<table>
<?php
  $dbh = odbc_connect('testdb', 'aname', 'apwd', SQL_CUR_USE_ODBC);
  $now = time();
  $ip = getenv("REMOTE_ADDR");
  $ref = getenv("HTTP_REFERER");
  $query = "insert into guests values ($now, '$ip', '$ref', '$name', '$eintrag')";
 if ($eintrag!="")
 {
   echo "Eingetragen";
   $res = odbc_exec($dbh, $query);
 }
  $query = "select * from guests";
  $res = odbc_exec($dbh, $query);
  while (odbc_fetch_row($res))
  {
   $thename=odbc_result($res,"name");
   $theeintrag=odbc_result($res,"eintrag");
   echo "<tr><td>$thename</td><td>$theeintrag</td></tr>";
  }

  odbc_close_all();
?>

</table>
<form action="guestbook.php">
Ihr Name:<input name="name"><br>
Ihr Eintrag:<textarea name="eintrag">
</textarea>        <br>
<input type=submit><input type=reset>
</form>

</body>
</html>


ToDo's

nach obenToDo's 

Als to-do würde ich Ihnen empfehlen,


copyright (c)  2003   useGroup