Hey. I just posted an issue concerning this same script. It was resolved so quickly, I figured I'd post this new issue in hopes of finding some quick fix also. Any help would be greatly appreciated.
Any time someone doesn't finish filling in the form, the script is designed to give them an error code. For some reason, it also stops anything below the printed error code from loading, which includes some important footer information to complete the page design. AKA, it looks like crap. lol
Here's the code I'm working with:
<?
//connect to your database
require_once($_SERVER['DOCUMENT_ROOT'].'/source/scripts/comments/config.php');
//query comments for this page of this article
$inf = "SELECT * FROM `comments` WHERE `page` = '".STRIPSLASHES($_SERVER['REQUEST_URI'])."' ORDER BY `time` ASC";
$info = mysql_query($inf);
if(!$info) die(mysql_error());
$info_rows = mysql_num_rows($info);
if($info_rows > 0) {
echo '<a name="comments"></a><h3>Comments:</h3>';
echo '<table width="100%">';
while($info2 = mysql_fetch_object($info)) {
echo '<tr>';
echo '<td class="bubbledescription"><b>"'.stripslashes($info2->subject).'" by: <a href="'.$info2->contact.'">'.stripslashes($info2->username).'</a></b> <div align="left" class="smallertext">'.date('h:i:s a', $info2->time).' on '.$info2->date.'</div></td> ';
echo '</tr><tr>';
echo '<td class="bubbledescription"> '.stripslashes($info2->comment).'<br /><br /></td>';
echo '</tr>';
}//end while
echo '</table>';
echo '<hr width="95%" noshade>';
} else echo '<em>No one has commmented yet. Be the first. You know you want to. <br /><br /></em>';
if(isset($_POST['submit'])) {
if(!addslashes($_POST['username'])) die('<u>ERROR:</u> Make sure you entered a username for your comment.');
if(!addslashes($_POST['contact'])) die('<u>ERROR:</u> Make sure that you entered a contact address or web-site.');
if(!addslashes($_POST['subject'])) die('<u>ERROR:</u> Make sure you put a subject on your comment.');
if(!addslashes($_POST['comment'])) die('<u>ERROR:</u> You did not enter a comment.');
//this is for a valid contact
if(substr($_POST['contact'],0,7) != 'mailto:' && !strstr($_POST['contact'],'//')) {
if(strstr($_POST['contact'],'@'))
$_POST['contact'] = "mailto:".$_POST['contact']."";
else
$_POST['contact'] = "http://".$_POST['contact']."";
} //end valid contact
//try to prevent multiple posts and flooding...
$c = "SELECT * from `comments` WHERE ip = '".$_SERVER['REMOTE_ADDR']."'";
$c2 = mysql_query($c);
while($c3 = mysql_fetch_object($c2)) {
$difference = time() - $c3->time;
if($difference < 60) die('<u>ALERT:</u> '.$c3->username.', Please wait one minute between comments. Also, refresh the page if you cannot see the bottom portion of the page.<BR>');
} //end while
//add comment
$q ="INSERT INTO `comments` (article_id, page, date, time, username, ip, contact, subject, comment) VALUES ('".$_GET['id']."', '".$_POST['page']."', '".$_POST['date']."', '".$_POST['time']."', '".addslashes(htmlspecialchars($_POST['username']))."', '".$_SERVER['REMOTE_ADDR']."', '".addslashes(htmlspecialchars($_POST['contact']))."', '".addslashes(htmlspecialchars($_POST['subject']))."', '".addslashes(nl2br(htmlspecialchars($_POST['comment'])))."')";
$q2 = mysql_query($q);
if(!$q2) die(mysql_error());
//refresh page so they can see new comment
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_POST['page'] . "#comments");
} else { //display form
?>
<form name="comments" action="<? $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" name="page" value="<? echo($_SERVER['REQUEST_URI']); ?>">
<input type="hidden" name="date" value="<? echo(date("F j, Y.")); ?>">
<input type="hidden" name="time" value="<? echo(time()); ?>">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="commentformLeftColumn"><div align="right">Name: </div></td>
<td class="commentformRightColumn"><input name="username" type="text" size="30" value="" class="commentformTextField"></td>
</tr>
<tr>
<td class="commentformLeftColumn"><div align="right">Contact: </div></td>
<td class="commentformRightColumn"><input type="text" name="contact" size="30" value="" class="commentformTextField">
<i>(e-mail or web-site) </i></td>
</tr>
<td class="commentformLeftColumn"><div align="right">Subject: </div></td>
<td class="commentformRightColumn"><input type="text" name="subject" size="30" value="" class="commentformTextField"></td>
</tr>
<tr>
<td class="commentformLeftColumn"><div align="right">Comment: </div></td>
<td class="commentformRightColumn"><textarea name="comment" cols="45" rows="5" wrap="VIRTUAL" class="commentformTextArea"></textarea></td>
</tr>
<tr>
<td></td>
<td colspan="2" class="commentformRightColumn"><input type="submit" name="submit" value="Add Comment" class="commentformSubmit"></td>
</tr>
</table>
</form>
<?
} // end else
?>
For an example of the problem, you can visit the page below. Just fill out the form partially and you'll see the problem:
http://www.collegeisamovie.com/movies/passed/
Thanks in advance for any help anyone can provide.