Go to most recent revision | Blame | Last modification | View Log | Download
<?php
#Shout It! Version 1.0 By Tim Lovett of www.alphibia.com
#You may not take credit for the code...
#You may redistribute if you keep the original zip intact
# www.weborum.com <- if you have any questions regarding the script.
#The smilies are free from an open directory so I have included them.
#http://members.shaw.ca/wenpigsfly/smileys/index.htm
#Some others were made by friends
#One was made by me.
#None were stolen, that open directory grants usage of theirs. :-)
#If you want any more smilies feel free to go there.
include 'ShoutBoxFiles/shoutoptions.php';
#include the shoutoptions.php file with admin's options...
include 'ShoutBoxFiles/shoutfunctions.php';
#includes all of the functions required
$Outside = 0;
$IP = $_SERVER["REMOTE_ADDR"];
#logs user IP (used for many different parts)
if ((isset($_GET['SelfDel']))&&($SelfDelete==1))
#if selfdel is set and the admin has turned on selfdeleting
{
$DelID = dbInsans($_GET['SelfDel']);
#sets DelID to the SelfDel, it holds the ID of the one you want to delete
$ShoutDisplay = $ShowNormal;
#will only get rid of ones being shown
$db = mysql_connect("$dbHost","$dbUser","$dbPass");
#connect to database
mysql_select_db($dbname,$db);
#select database
$requete = "SELECT * FROM ShoutBox ORDER BY Date DESC LIMIT 0,$ShoutDisplay";
#We want them only to be able to delete from the group that's up there now...
#not find the ID of one of their older archived and delete doing this protects that
#because instead of just grabbing the row, we're grabbing the shown ones and
#checking to see if we find the ID, if we find the ID and the IPs match, it's nuked
$result = mysql_query ($requete,$db);
while ($article = mysql_fetch_object($result))
#while we scroll through current ones
{
if($DelID==$article->ID)
#if ID is in the current ones
{
if($IP==$article->IP)
#if user owns the ID (if IPs match.)
{
$requete2 = "DELETE FROM ShoutBox WHERE ID='$DelID'";
#delete the item where the ID is the DelID
mysql_query ($requete2,$db);
#query the database with the query...
}
else
echo '<span class="shoutentry">Your IP does not match.</span>';
#the IP does not match...
}
}
}
#the following no script is required for legal reasons
?>
<noscript>
For a free easily customizable shout box/tag board script, head to <a href="www.alphibia.com">www.alphibia.com</a>.
</noscript>
<?php
if (isset($_POST['shoutsubmit']))
#if the user has clicked the submit button
{
$Name = lefts(dbInsans($_POST['ShoutName']),$NameCutOff);
# Users Name, it's cut off at the name cutoff, useful for formatting restrictions
$URL = dbInsans($_POST['ShoutURL']);
#for URL/Email
$Date = time();
#Time user is posting...
$Message = dbInsans(lefts($_POST['Message'], $MessageCutOff));
#User's message... lefts cuts it off and dbInsans protects againsts hackers
#the next few pieces of code check the user IP against database at ID and the date
$r=0;
#We're going to use the variable r as a switch to determine if they're in the database.
$db = mysql_connect("$dbHost","$dbUser","$dbPass");
#connecting to the database area
mysql_select_db($dbname,$db);
#selecting our database
$requete = "SELECT Date FROM ShoutBox WHERE IP='$IP' ORDER By Date Desc LIMIT 1";
#A query to pull the last date from the owner of this IP
$result = mysql_query ($requete,$db);
#Should return ips of voters
$article = mysql_fetch_object($result);
#since it's only 1 item we want, the first
$u=0;$y=0;
if ($Message==NULL)
$u=1; #if it's empty...
if (($Date-$article->Date)<$ShoutWait)
$u=1; #if the article is posted too soon from last
#That was flood control.
#Check and see if user is banned. :-X
$requete = "SELECT IP FROM ShoutBoxBanned WHERE IP='$IP'";
#A query to pull our guy if he's there
$result = mysql_query ($requete,$db);
#Should return ip if he's there
$article = mysql_fetch_object($result);
if ($article->IP!=NULL)
$y=1; #if it's not empty, he's there
if ($u==0)
#if the message wasn't null and he isn't flooding
{
if($y==0)
#if he's not banned
{
#the following sets his cookies
?>
<script language="JavaScript" type="text/javascript">
var now = new Date();
now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
setCookie("ShoutName", "<?php echo $Name;?>", now);
setCookie("ShoutURL", "<?php echo $URL;?>", now);
</script>
<?php
$sql = "INSERT INTO ShoutBox (Date, URL, IP, Name, Message) VALUES ('$Date', '$URL', '$IP', '$Name', '$Message')";
#Creates the insert query string.
mysql_query($sql, $db);
#Queries the database and adds the user.
}
else
{
echo '<span class="shoutentry">Sorry the admin banned you from posting.</span><br />';
#let him know he's been banned
}
}
else
{
echo '<span class="shoutentry">Flood Protection is enabled, sorry.</span><br />';
#if he's sending empty messages or flooding, he gets this
}
}
#Code to delete after rows...
$db = mysql_connect("$dbHost","$dbUser","$dbPass");
#connecting to the database area
mysql_select_db($dbname,$db);
#selecting our database
$MaxRows2 = $MaxRows-1;
#used to create limit
$requete = "SELECT Date FROM ShoutBox ORDER By Date Desc LIMIT $MaxRows2,$MaxRows";
#grabs the $MaxRow(set in useroptions)'s entry
$result = mysql_query ($requete,$db);
#Should return the MaxRow's date
$article = mysql_fetch_object($result);
#Only need one article so not looping
$Last = $article->Date;
#We grab his date
$requete2 = "DELETE FROM ShoutBox WHERE Date<'$Last'";
#deletes anything before that entry...
mysql_query ($requete2,$db);
#queries the query
$ShoutDisplay = $ShowNormal;
#Set the display to normal, when entries is called ShoutDisplay is used to determine
#how many to show...
if ($IFRAME==1)
echo '<iframe class="shoutiframe" src="ShoutBoxFiles/shoutiframe.php"></iframe>';
else
include 'ShoutBoxFiles/shoutentries.php';
#include the entries
?>
<a class="shoutlink" href="javascript:shoutbox('ShoutBoxFiles/shoutboxarch.php')">Display Archived Shouts</a>
<br />
<form method="post" name="shoutbox" action="<?php echo $_SERVER['SCRIPT_NAME'];?>">
<span class="shoutinput">Name : </span><br /><input type="text" name="ShoutName" /><br />
<br />
<span class="shoutinput">Email/URL : </span><br /><input type="text" name="ShoutURL" /><br />
<br />
<span class="shoutinput">Message : </span><br />
<textarea name="Message" rows="3" cols="18" class="shouttextarea" onkeyup="TrackCount(this,'textcount',<?php echo $MessageCutOff;?>)" onkeypress="LimitText(this,<?php echo $MessageCutOff;?>)"></textarea><br />
<span class="shoutinput">Characters remaining: </span> <input type="text" name="textcount" size="3"
value="<?php echo $MessageCutOff;?>" /><br />
<input type="submit" name="shoutsubmit" value="Submit" /> <a class="shoutlink" href="javascript:shoutbox('ShoutBoxFiles/shoutboxpopup.php')">Shout-Code!</a>
</form>
<script language="JavaScript" type="text/javascript">
var cookievalu = getCookie("ShoutName");
if (cookievalu!=null)
document.shoutbox.ShoutName.value = cookievalu;
else
document.shoutbox.ShoutName.value ="";
var cookieval = getCookie("ShoutURL");
if (cookieval!=null){
document.shoutbox.ShoutURL.value = cookieval;
}
else
document.shoutbox.ShoutURL.value ="";
</script>
</div>