::: T4VN Statistics :::
PHP Scripts : 65
PHP Example : 67
PHP Tutorials : 21
PHP News : 93
Total Coupon : 36
Other Tutorials :
Member : 266
Complete Guestbook
Author : triphp
It's a complete guestbook with smileys support, bad word filter, bbcode, email notifications, etc.
PHP Example : <?php
/*
CREATE TABLE `guestbook` (
`GuestId` int(11) NOT NULL auto_increment,
`GuestName` varchar(50) NOT NULL default '',
`GuestEmail` varchar(50) NOT NULL default '',
`GuestURL` varchar(50) default NULL,
`GuestMessage` text NOT NULL,
`GuestEntry` date NOT NULL default '0000-00-00',
`GuestIP` varchar(50) NOT NULL default '',
PRIMARY KEY (`GuestId`)
) TYPE=MyISAM;
*/
?>
<?php
// open database connection
include ( "config.php" );
// check if the form is submitted
if(isset( $_POST [ 'go' ]))
{
$name = $_POST [ 'name' ];
$email = $_POST [ 'email' ];
$url = $_POST [ 'website' ];
$message = $_POST [ 'message' ];
$date = date ( "Y-m-d" );
$ip = $_SERVER [ 'REMOTE_ADDR' ];
// empty the url if only default value
if( $url == 'http://' )
{
$url = '' ;
}
// add the values to an array
// name
$theValue = (! get_magic_quotes_gpc ()) ? addslashes ( $name ) : $name ;
$theValue = ( $theValue != "" ) ? " '" . $theValue . "'" : "NULL" ;
$fieldList [ "`GuestName`" ] = $theValue ;
// email
$theValue = (! get_magic_quotes_gpc ()) ? addslashes ( $email ) : $email ;
$theValue = ( $theValue != "" ) ? " '" . $theValue . "'" : "NULL" ;
$fieldList [ "`GuestEmail`" ] = $theValue ;
// url
$theValue = (! get_magic_quotes_gpc ()) ? addslashes ( $url ) : $url ;
$theValue = ( $theValue != "" ) ? " '" . $theValue . "'" : "NULL" ;
$fieldList [ "`GuestURL`" ] = $theValue ;
// message
$theValue = (! get_magic_quotes_gpc ()) ? addslashes ( $message ) : $message ;
$theValue = ( $theValue != "" ) ? " '" . $theValue . "'" : "NULL" ;
$fieldList [ "`GuestMessage`" ] = $theValue ;
// date entry
$theValue = (! get_magic_quotes_gpc ()) ? addslashes ( $date ) : $date ;
$theValue = ( $theValue != "" ) ? " '" . $theValue . "'" : "NULL" ;
$fieldList [ "`GuestEntry`" ] = $theValue ;
// IP Address
$theValue = (! get_magic_quotes_gpc ()) ? addslashes ( $ip ) : $ip ;
$theValue = ( $theValue != "" ) ? " '" . $theValue . "'" : "NULL" ;
$fieldList [ "`GuestIP`" ] = $theValue ;
// insert into database
$strsql = "INSERT INTO `myphpguest` (" ;
$strsql .= implode ( "," , array_keys ( $fieldList ));
$strsql .= ") VALUES (" ;
$strsql .= implode ( "," , array_values ( $fieldList ));
$strsql .= ")" ;
mysql_query ( $strsql , $ServerConnect ) or die( mysql_error ());
// send email to admin
// change the email here to your desired one
$admin_email = "ralcibar@fastmail.fm" ;
$msgtitle = $name . "signed your guestbook" ;
$msgcontent = $message ;
mail ( $admin_email , $msgtitle , $msgcontent , "From: $emailn" );
header ( 'Location:' . $_SERVER [ 'REQUEST_URI' ]);
exit;
}
?>
<html>
<head>
<title>MyPHPGuest</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
td
{
font-family: Verdana;
font-size: 11px;
font-weight: normal;
color: #333333;
text-decoration: none;
}
input
{
font-family: Verdana;
font-size: 11px;
color: #000000;
text-decoration: none;
}
textarea
{
font-family: Verdana;
font-size: 11px;
color: #000000;
text-decoration: none;
}
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
</style>
<script language="JavaScript" type="text/JavaScript">
function checkForm()
{
var gname, gemail, gurl, gmessage;
with(window.document.myphpguestform)
{
gname = name;
gemail = email;
gurl = website;
gmessage = message;
}
checkmail =gemail.value.indexOf("@")
if(gname.value == '')
{
alert('Name cannot be null!');
gname.focus;
return false;
}
if(gemail.value == '')
{
alert('Email cannot be null!');
gemail.focus;
return false;
}
if(gemail.value == '')
{
alert('Email cannot be null!');
gemail.focus;
return false;
}
if (checkmail<0)
{
alert("Not a valid e-mail")
gemail.focus;
return false;
}
else if(gmessage.value == '')
{
alert('Enter your message!');
gmessage.focus;
return false;
}
else
{
return true;
}
}
function addsmiley(code)
{
var pretext = document.myphpguestform.message.value;
this.code = code;
document.myphpguestform.message.value = pretext + code;
}
</script>
</head>
<body bgcolor="#66CCFF">
<?php
#=======================================
# Show guestbook entries
#=======================================
// replace smileys and bad word filtering
function creplace ( $msg )
{
// smileys
$msg = str_replace ( ":)" , "<img src='smileys/smile.gif' alt=':)' align='absbottom'>" , $msg );
$msg = str_replace ( ":(" , "<img src='smileys/sad.gif' alt=':(' align='absbottom'>" , $msg );
$msg = str_replace ( ":p" , "<img src='smileys/tongue.gif' alt=':p' align='absbottom'>" , $msg );
$msg = str_replace ( ":D" , "<img src='smileys/biggrin.gif' alt=':)' align='absbottom'>" , $msg );
$msg = str_replace ( ":@" , "<img src='smileys/mad.gif' alt=':(' align='absbottom'>" , $msg );
$msg = str_replace ( ":0" , "<img src='smileys/eek.gif' alt=':p' align='absbottom'>" , $msg );
$msg = str_replace ( ":S" , "<img src='smileys/confused.gif' alt=':)' align='absbottom'>" , $msg );
$msg = str_replace ( ";)" , "<img src='smileys/wink.gif' alt=':(' align='absbottom'>" , $msg );
$msg = str_replace ( "=blush" , "<img src='smileys/blush.gif' alt=':p' align='absbottom'>" , $msg );
$msg = str_replace ( "=boggle" , "<img src='smileys/boggle.gif' alt=':)' align='absbottom'>" , $msg );
$msg = str_replace ( "=cool" , "<img src='smileys/cool.gif' alt=':(' align='absbottom'>" , $msg );
$msg = str_replace ( "=huh" , "<img src='smileys/huh.gif' alt=':p' align='absbottom'>" , $msg );
$msg = str_replace ( "=notsure" , "<img src='smileys/notsure.gif' alt=':)' align='absbottom'>" , $msg );
$msg = str_replace ( "=ooh" , "<img src='smileys/ooh.gif' alt=':(' align='absbottom'>" , $msg );
$msg = str_replace ( "=rolleyes" , "<img src='smileys/rolleyes.gif' alt=':p' align='absbottom'>" , $msg );
$msg = str_replace ( "=sleep" , "<img src='smileys/sleep.gif' alt=':)' align='absbottom'>" , $msg );
$msg = str_replace ( "=stress" , "<img src='smileys/stress.gif' alt=':(' align='absbottom'>" , $msg );
$msg = str_replace ( "=tired" , "<img src='smileys/tired.gif' alt=':p' align='absbottom'>" , $msg );
$msg = str_replace ( "=urgh" , "<img src='smileys/urgh.gif' alt=':)' align='absbottom'>" , $msg );
$msg = str_replace ( "=worry" , "<img src='smileys/worry.gif' alt=':(' align='absbottom'>" , $msg );
$msg = str_replace ( "=lol" , "<img src='smileys/icon_lol.gif' alt=':p' align='absbottom'>" , $msg );
$msg = str_replace ( "=razz" , "<img src='smileys/icon_razz.gif' alt=':p' align='absbottom'>" , $msg );
// bbcode
$msg = str_replace ( "[B]" , "<strong>" , $msg );
$msg = str_replace ( "[/B]" , "</strong>" , $msg );
$msg = str_replace ( "[I]" , "<em>" , $msg );
$msg = str_replace ( "[/I]" , "</em>" , $msg );
$msg = str_replace ( "[U]" , "<u>" , $msg );
$msg = str_replace ( "[/U]" , "</u>" , $msg );
$msg = str_replace ( "[LI]" , "<li>" , $msg );
$msg = str_replace ( "[/LI]" , "</li>" , $msg );
// bad word filter
// add as many bad words as you can
$msg = str_replace ( "bad" , "*" , $msg );
$msg = str_replace ( "shit" , "*" , $msg );
$msg = str_replace ( "bitch" , "*" , $msg );
$msg = str_replace ( "atay" , "*" , $msg );
$msg = str_replace ( "fuck" , "*" , $msg );
$msg = str_replace ( "sex" , "*" , $msg );
$msg = str_replace ( "ugly" , "*" , $msg );
$msg = str_replace ( "hate" , "*" , $msg );
$msg = str_replace ( "hatred" , "*" , $msg );
return $msg ;
}
// entries to show per page
$rowsPerPage = 5 ;
// by edfault how first page
$pageNum = 1 ;
if(isset( $_GET [ 'page' ]))
{
$pageNum = $_GET [ 'page' ];
}
// counting where to start fetching the entries
$offset = ( $pageNum - 1 ) * $rowsPerPage ;
$query = "SELECT * FROM myphpguest ORDER BY GuestId DESC LIMIT $offset, $rowsPerPage" ;
$result = mysql_query ( $query ) or die( 'Error:' . mysql_error ());
$num_rows = mysql_num_rows ( $result );
if( $num_rows == 0 )
{
?>
<p align="center"><font face="Tahoma" size="1"><strong>No guestbook entry!</strong></font></p>
<?php
}
else
{
?>
<table width="400" cellspacing="1" cellpadding="2" align="center" bgcolor="#000000">
<tr bgcolor="#3E96F8">
<td valign="middle"><font color="#FFFFFF"><strong>Guestbook Entries</strong></font></td>
<td valign="middle" align="right"><font color="#FFFFFF"><strong>:: <a href="#signin">Sign Here</a> ::</strong></font></td>
</tr>
<?php
while( $row = mysql_fetch_array ( $result ))
{
$key = $row [ 'GuestId' ];
$name = $row [ 'GuestName' ];
$email = $row [ 'GuestEmail' ];
$url = $row [ 'GuestURL' ];
$message = $row [ 'GuestMessage' ];
$fmessage = nl2br ( $message );
$dateposted = $row [ 'GuestEntry' ];
$ip = $row [ 'GuestIP' ];
?>
<tr bgcolor="#F0F0EB">
<td align="left" valign="top" colspan="2">
<?php echo "<b>$name</b> on <b>$dateposted</b> from <b>$ip</b>" ; ?> <br>
<?php
if ( $url == "" )
{
echo "<a href='mailto:$email'>$email</a><br><br>" ;
}
else
{
echo "<a href='mailto:$email'>$email</a><br>" ;
echo "<a href='$url' title='$url' target='_blank'>$url</a><br><br>" ;
}
echo "<p align='justify'>" . creplace ( $fmessage ). "</p>" ;
?>
</td>
</tr>
<?php
}
}
?>
<?php
// Pagination
$query = "SELECT COUNT(GuestId) AS entrys FROM myphpguest" ;
$result = mysql_query ( $query ) or die( 'Error:' . mysql_error ());
$row = mysql_fetch_array ( $result , MYSQL_ASSOC );
$numrows = $row [ 'entrys' ];
$maxpage = ceil ( $numrows / $rowsPerPage );
$self = $_SERVER [ 'PHP_SELF' ];
$nav = '' ;
for( $page = 1 ; $page <= $maxpage ; $page ++)
{
if( $page == $pageNum )
{
$nav .= " $page " ;
}
else
{
$nav .= "<a href='$self?page=$page'> $page </a>" ;
}
}
if ( $pageNum > 1 )
{
$page = $pageNum - 1 ;
$prev = " <a href='$self?page=$page'><strong>«</strong></a>" ;
$first = " <a href='$self?page=1'><strong>««</strong></a>" ;
}
else
{
$prev = '' ;
$first = '' ;
}
if ( $pageNum < maxpage )
{
$page = $pageNum + 1 ;
$next = " <a href='$self?page=$page'><strong>»</strong></a>" ;
$last = " <a href='$self?page=$maxpage'><strong>»»</strong></a>" ;
}
else
{
$next = '' ;
$last = '' ;
}
?>
<tr bgcolor="#3E96F8">
<td align="center">
<?php echo $first . " " . $prev . " " . $nav . " " . $next . " " . $last ; ?>
</td>
<td align="right">
<font color="#FFFFFF"><strong>::</strong></font> <a href="admin.php" target="_parent"><strong>Admin Panel</strong></a> <font color="#FFFFFF"><strong>::</strong></font>
</td>
</tr>
</table>
<?php
mysql_close ( $ServerConnect );
?>
<form name="myphpguestform" method="post" action="" onSubmit="return checkForm();">
<table width="400" cellspacing="0" cellpadding="3" align="center" bgcolor="#F0F0EB" style="border: 1px solid #000000;">
<tr bgcolor="#3E96F8">
<td colspan="2" valign="top"><font color="#FFFFFF"><strong><a name="signin">Post Comment</a></strong></font></td>
</tr>
<tr>
<td width="76" height="24" valign="middle">Name:</td>
<td width="212" valign="top"> <input type="text" name="name" size="34"></td>
</tr>
<tr>
<td valign="middle">Email:</td>
<td valign="top"><input type="text" name="email" size="34"></td>
</tr>
<tr>
<td valign="middle">Website:</td>
<td valign="top"><input type="text" name="website" size="34" value="http://"></td>
</tr>
<tr>
<td valign="middle">Comments:</td>
<td valign="top">
<img src="smileys/smile.gif" alt=":)" border="0" onClick="addsmiley(':)')" style="cursor: pointer;">
<img src="smileys/sad.gif" alt=":(" border="0" onClick="addsmiley(':(')" style="cursor: pointer;">
<img src="smileys/tongue.gif" alt=":p" border="0" onClick="addsmiley(':p')" style="cursor: pointer;">
<img src="smileys/biggrin.gif" alt=":D" border="0" onClick="addsmiley(':D')" style="cursor: pointer;">
<img src="smileys/mad.gif" alt=":@" border="0" onClick="addsmiley(':@')" style="cursor: pointer;">
<img src="smileys/eek.gif" alt=":0" border="0" onClick="addsmiley(':0')" style="cursor: pointer;">
<img src="smileys/confused.gif" alt=":S" border="0" onClick="addsmiley(':S')" style="cursor: pointer;">
<img src="smileys/wink.gif" alt=";)" border="0" onClick="addsmiley(';)')" style="cursor: pointer;">
<img src="smileys/blush.gif" alt="=blush" border="0" onClick="addsmiley('=blush')" style="cursor: pointer;">
<img src="smileys/boggle.gif" alt="=boggle" border="0" onClick="addsmiley('=boggle')" style="cursor: pointer;">
<img src="smileys/cool.gif" alt="=cool" border="0" onClick="addsmiley('=cool')" style="cursor: pointer;"><br>
<img src="smileys/huh.gif" alt="=huh" border="0" onClick="addsmiley('=huh')" style="cursor: pointer;">
<img src="smileys/notsure.gif" alt="=notsure" border="0" onClick="addsmiley('=notsure')" style="cursor: pointer;">
<img src="smileys/ooh.gif" alt="=ooh" border="0" onClick="addsmiley('=ooh')" style="cursor: pointer;">
<img src="smileys/rolleyes.gif" alt="=rolleyes" border="0" onClick="addsmiley('=rolleyes')" style="cursor: pointer;">
<img src="smileys/sleep.gif" alt="=sleep" border="0" onClick="addsmiley('=sleep')" style="cursor: pointer;">
<img src="smileys/stress.gif" alt="=stress" border="0" onClick="addsmiley('=stress')" style="cursor: pointer;">
<img src="smileys/tired.gif" alt="=tired" border="0" onClick="addsmiley('=tired')" style="cursor: pointer;">
<img src="smileys/urgh.gif" alt="=urgh" border="0" onClick="addsmiley('=urgh')" style="cursor: pointer;">
<img src="smileys/worry.gif" alt="=worry" border="0" onClick="addsmiley('=worry')" style="cursor: pointer;">
<img src="smileys/icon_lol.gif" alt="=lol" border="0" onClick="addsmiley('=lol')" style="cursor: pointer;">
<img src="smileys/icon_razz.gif" alt="=razz" border="0" onClick="addsmiley('=razz')" style="cursor: pointer;"><br>
<img src="smileys/bold.gif" alt="=razz" border="0" onClick="addsmiley('[B][/B]')" style="cursor: pointer;">
<img src="smileys/italic.gif" alt="=razz" border="0" onClick="addsmiley('[I][/I]')" style="cursor: pointer;">
<img src="smileys/underline.gif" alt="=razz" border="0" onClick="addsmiley('[U][/U]')" style="cursor: pointer;">
<img src="smileys/list.gif" alt="=razz" border="0" onClick="addsmiley('[LI][/LI]')" style="cursor: pointer;">
<textarea name="message" rows="7" cols="33"></textarea>
</td>
</tr>
<tr>
<td valign="middle"> </td>
<td valign="top">
<input name="cancel" type="button" value="CANCEL" onClick="javascript:location.href('guestbook.php');">
<input name="reset" type="reset" value="RESET">
<input name="go" type="submit" value="POST">
</td>
</tr>
</table>
</form>
</body>
</html>
Other Example
::: Resources :::
::: New Templates :::
::: Other Tutorials :::