How to Create a Simple Shoutbox PHP Script

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!
Tags: , , , , , , , | Posted under Internet, Website Creation | RSS 2.0

Author Spotlight

Andrew Cross

Andrew Cross

Hi, I'm Andrew. A am a 26, ICT Administrator which offers support to company's around the South Wales Area. I have created a few social sites for myself and other company's. So far 2 out of 3 have been successful using the powerful SocialEngine Script. I continue to try and help the community of SocialEngine by giving Support and Technical Help where possible.

Leave a Reply

Your email address will not be published. Required fields are marked *


− 4 = 1

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>