A lot of sites these days have a shoutbox, not all are 100% with each site so here is a simple php script to setup your own shoutbox enjoy 🙂
Firstly, let’s setup our table, enter this SQL data into mySQL or a GUI for mySQL such as phpMyAdmin.
Code:CREATE TABLE `shoutbox` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `message` TEXT NOT NULL, `author` VARCHAR(80) NOT NULL, `email` VARCHAR(50) NOT NULL, `date` VARCHAR(50) NOT NULL, `ip` VARCHAR(20) NOT NULL , PRIMARY KEY (`id`))Now let’s get on with the script! And save this as shoutbox.php
Code:<?php // You just need to configure these 4 variables to match your server. $db_host = "localhost"; // mySQL database host $db_user = "username"; // mySQL database user $db_password = "password"; // mySQL database password $db_name = "database"; // the name of your mySQL database // If a user has submitted a post, we want to : // 1. Validate it // 2. Strip unwanted html // 3. Make sure messages and names aren't too long // 4. Add it to our database. if($_POST['submit']) { // 1. Validate it, by checking all the form inputs were filled in if(!$_POST['author']) { echo 'Error ! : No name entered'; die; } if(!$_POST['email']) { echo 'Error ! : No email entered'; die; } if(!$_POST['message']) { echo 'Error ! : No message entered'; die; } // 2. Strip unwanted HTML // Look up the strip_tags() function at // http://www.php.net/manual/en/function.strip-tags.php for more info $message = strip_tags($_POST['message'], ''); $email = strip_tags($_POST['email'], ''); $author = strip_tags($_POST['author'], ''); // 3. Make sure messages and names aren't too long // We will use the strlen() function to count the length. $message_length = strlen($message); $author_length = strlen($author); if($message_length > 150) { echo "Error ! : Your message was too long, messages must be less than 150 chars"; die; } if($author_length > 150) { echo "Error ! : Your name was too long, names must be less than 150 chars"; die; } // 4. Add it to our database. // If the script hasn't died yet due to an error in the inputted data // we need to add the data to the database // Let's connect to our database. mysql_connect($db_host,$db_user,$db_password) or die(mysql_error()); // Select the database. mysql_select_db($db_name) or die(mysql_error()); // Let's define the date format we want to enter to our database // go here for more details // http://www.php.net/manual/en/function.date.php $date = date("h:i A dS M"); // This will produce 11:02 25th Aug // Set the query as $query $query = "INSERT INTO shoutbox (message, author, email, date, ip) VALUES ('$message','$author','$email','$date','$_SERVER[REMOTE_ADDR]')"; mysql_query($query); mysql_close(); // Show thanks message and take them back to the main shoutbox echo "Thanks for your post<BR>"; echo "<A HREF=\"shoutbox.php\">View the shoutbox</A>"; // If they haven't submitted a post, we want to : // 1. Show the latest shouts // 2. Show the shout post form } else { // 1. Show the latest shouts // Let's connect to our database. mysql_connect($db_host,$db_user,$db_password) or die(mysql_error()); // Select the database. mysql_select_db($db_name) or die(mysql_error()); // Set the query as $query, and get the last 10 posts. $query = "SELECT message, author, email, date, ip FROM shoutbox order by id DESC LIMIT 10"; $result = mysql_query($query); echo "<TABLE>"; while($r=mysql_fetch_array($result)) { // To modify the appearance, edit this : echo "<TR> <TD><font size='1'> Posted $r[date] by <A HREF=\"mailto:$r\"> $r[author]</A></font></TD> </TR> <TR> <TD><font size='1'>$r[message]</font></TD> </TR> <TR> <TD><HR></TD> </TR>"; } echo "</TABLE>"; // 2. Show the shout post form ?> <FORM METHOD=POST ACTION="shoutbox.php"> <TABLE> <TR> <TD>Name :</TD> <TD><INPUT TYPE="text" NAME="author"></TD> </TR> <TR> <TD>Email :</TD> <TD><INPUT TYPE="text" NAME="email"></TD> </TR> <TR> <TD>Message :</TD> <TD><INPUT TYPE="text" NAME="message"></TD> </TR> <TR> <TD> </TD> <TD><INPUT TYPE="submit" name="submit" value="post"></TD> </TR> </TABLE> </FORM> <?php } ?>It would be a bad idea to directly plant this script into your page, as a long word would stretch your page sideways, I recommend to save it as shoutbox.php, and use this code to make an IFRAME in your page.
Code:<IFRAME src="shoutbox.php"
Looking for quality web hosting? Look no further than Arvixe Web Hosting!