/* PHP Guestbook 1.1 Written by Tony Awtrey Anthony Awtrey Consulting See http://www.awtrey.com/support/dbeweb/ for more information 1.1 - Oct. 20, 1999 - changed the SQL statement that reads data back out of the database to reverse the order putting the newest entries at the top and limiting the total displayed by default to 20. Added the ability to get the complete list by appending the URL with '?complete=1'. Added the code and additional query to count and list the total number of entries and included a link to the complete list. 1.0 - Initial release This is the SQL statement to create the database required for this application. CREATE TABLE guests ( guest_id int(4) unsigned zerofill DEFAULT '0000' NOT NULL auto_increment, guest_name varchar(50), guest_email varchar(50), guest_time timestamp(14), guest_message text, PRIMARY KEY (guest_id) ); */ //////////////////////////////// // This checks to see if we need to add another guestbook entry. //////////////////////////////// if (($REQUEST_METHOD=='POST')) { //////////////////////////////// // This loop removed "dangerous" characters from the posted data // and puts backslashes in front of characters that might cause // problems in the database. //////////////////////////////// for(reset($HTTP_POST_VARS); $key=key($HTTP_POST_VARS); next($HTTP_POST_VARS)) { $this = addslashes($HTTP_POST_VARS[$key]); $this = strtr($this, ">", " "); $this = strtr($this, "<", " "); $this = strtr($this, "|", " "); $$key = $this; } //////////////////////////////// // This will catch if someone is trying to submit a blank // or incomplete form. //////////////////////////////// if ($name && $email && $message ) { //////////////////////////////// // This is the meat of the query that updates the guests table //////////////////////////////// $query = "INSERT INTO guests "; $query .= "(guest_id, guest_name, "; $query .= "guest_email, guest_time, guest_message) "; $query .= "values(0000,'$name','$email',NULL,'$message')"; mysql_pconnect("www.manavai.com","manavai","Manava1") or die("Unable to connect to SQL server"); mysql_select_db("maillist") or die("Unable to select database"); mysql_query($query) or die("Insert Failed!"); } else { //////////////////////////////// // If they didn't include all the required fields set a variable // and keep going. //////////////////////////////// $notall = 1; } } ?>
Please answer all fields
} ?>echo $numguest[0]; ?> people have left me a message.
//////////////////////////////// // This is where we decide to get all the entries or just the last 20. // This variable is set by just adding a '?complete=1' after the URL. //////////////////////////////// if ($complete == 1) { $query = "SELECT * FROM guests where display='Y' ORDER BY guest_id DESC"; } else { $query = "SELECT * FROM guests where display='Y' ORDER BY guest_id DESC LIMIT 20"; } $guests = mysql_query($query) or die("Select Failed!"); //////////////////////////////// // This will loop as long as there are records waiting to be processed. // Notice the plain HTML inside the while loop structure. PHP is flexable // enough to allow you to break into and out of the "code" at any point. //////////////////////////////// while ($guest = mysql_fetch_array($guests)) { ?>Name: echo $guest['guest_name']; ?> | //////////////////////////////// // The database has a timestamp record type that we can use to show the // date the guestbook was filled out. //////////////////////////////// $datefromdb = $guest['guest_time']; $year = substr($datefromdb,0,4); $mon = substr($datefromdb,4,2); $day = substr($datefromdb,6,2); $hour = substr($datefromdb,8,2); $min = substr($datefromdb,10,2); $sec = substr($datefromdb,12,2); $orgdate = date("l F dS, Y h:i A",mktime($hour,$min,$sec,$mon,$day,$year)); ?> Date: echo $orgdate; ?> | |
echo $guest['guest_message']; ?> |