<html>
<head><title>Simple Guestbook</title></head>
<body>
<?
/*
 The format we will use in this flat file database is as follows:
 1. each line will be a separate guestbook entry
 2. name, message, etc. are separated by the delimiter ::
 So a typical line will look like:
 Fred::November 16, 2008::New York City::Hello!<br>This is a demo.
 As you can see, the HTML tag <br> is used to create new lines in
 the message portion. 
*/
 $dbFile = "guestBk.db";

 $max = 8;  // max number of guest entries printed
  
 $PHP_SELF = $_SERVER['PHP_SELF'];
 $msg     = $_GET['msg'];
 $person  = $_GET['person'];
 $place   = $_GET['place'];
 $pword   = $_GET['pword'];


 if( !empty($msg) && 
     !empty($person) && 
     !empty($place) &&  
     eregi("YOUR_IMAGE_PASSWORD",$pword) ){

  /* Here's a technique for constructing a date. $today is an array. */
  $today = getdate();
  $mon   = $today[month];
  $mday  = $today[mday];
  $year  = $today[year];
  $date  = "$mon $mday, $year";

  $msg = str_replace("\n","<br>", $msg);

  $fileHandle = fopen($dbFile, "a");
  if($fileHandle){
    fwrite($fileHandle,"$person::$date::$place::$msg\n");
    fclose($fileHandle);  
  }else{
    print("Trouble opening database file.");
    exit();
  }
  $person = "";  $place = "";  $msg = "";
 }

 /* The file() function splits a text file into elements of 
    an array.  Element 0 of the array is the file's first line, etc. */
 $guests = file($dbFile);

/* Now we're ready to print our form and list of guestbook entries */

   print <<<END_OF_FORM
<form action="$PHP_SELF" method="post">
 <table border=1>
  <tr><td>Your name:</td><td><input name="person" value="$person"></td></tr>
  <tr><td>Where are you?</td><td><input name="place" value="$place"></td></tr>
  <tr><td colspan="2"><textarea name="msg" cols="35" rows="15">$msg
       </textarea></td></tr>
  <tr><td><input type="text" value="type this word ->" size="18" name="pword"></td><td><img src="/icons/pword.gif"></td></tr>
  <tr><td></td><td><input type="submit" value="send"></td></tr>
 </table>
</form><hr>
END_OF_FORM;

 for($i=count($guests)-1;$i>=0;$i--){
     $parts = explode("::", $guests[$i] );

     $person = stripslashes($parts[0]);
     $date   = stripslashes($parts[1]);
     $place  = stripslashes($parts[2]);
     $msg    = stripslashes($parts[3]);

     if($max == 0) break;
     else $max--;

     print <<<GUEST_BK_ENTRY
 <table bgcolor="#fffacd" width="100%">
  <tr><td>$person</td><td>$date</td><td>$place</td></tr>
 </table>
 <p>$msg</p>
GUEST_BK_ENTRY;
 }

?>
</body>
</html>