我正在尝试限制评论和回复评论,并在达到限制后显示错误消息。我已成功限制评论和评论回复,并在仅提示评论时成功提供了错误消息,而不是评论回复。
评论回复中有一些jquery与他们合作,所以我唯一能看到的就是导致消息无法显示。我尝试过其他方法,然后使用当前正在使用的方法。
$valid = true;
$max_post_per_day = 5;
$max_reply_per_day = 5;
//THE REGULAR COMMENTS STRUCTURE THAT IS SHOWING THE ERROR MESSAGE PROPERLY
$query = "SELECT COUNT(*) FROM `cysticBlogComments`
WHERE `userID` = $auth->id
AND `date` = CURDATE()";
$result = mysql_query($query, $connection);
$post_count = mysql_result($result, 0);
$error_msgs_max_comment[] = "Whoops! You have reached the maximum amount of comments allowed for the day.";
if($post_count >= $max_post_per_day)
{
$valid = false;
}
else
{
$query = "INSERT INTO `cysticBlogComments`
( `blogID`,
`userID`,
`commentBody`,
`status`,
`date`,
`time`
) VALUES (
'" . $blogID ."',
'" . $auth->id ."',
'" . mysql_real_escape_string($_POST['BlogComment']) ."',
'active',
'" . date("Y-m-d") . "',
'" . date("G:i:s") . "')";
mysql_query($query, $connection);
}
<?php if(isset($_POST['commentBlogSubmit']) && $post_count >= $max_post_per_day ) {
foreach($error_msgs_max_comment as $msg) { ?>
<div id="error_x">
<?php echo $msg; ?>
</div>
<?php }
}?>
//THE REPLY COMMENT STRUCTURE THAT IS LIMITING BUY NOT DISPLAYING ERROR AND HAS JQUERY WITH IT
$query = "SELECT COUNT(*) FROM `CysticBlogComments_replies`
WHERE `FromUserID` = $auth->id
AND `date` = CURDATE()";
$result = mysql_query($query, $connection);
$post_count = mysql_result($result, 0);
$error_msgs_max_reply[] = "Whoops! You have reached the maximum amount of replies allowed for the day.";
if($post_count >= $max_reply_per_day)
{
$valid = false;
echo $error_msgs_max_reply;
}
else
{
$query = "INSERT INTO `CysticBlogComments_replies`
( `BlogCommentID`,
`FromUserID`,
`comment`,
`status`,
`date`,
`time`
) VALUES (
'" . mysql_real_escape_string($_POST['comment']) ."',
'" . $auth->id ."',
'" . mysql_real_escape_string($_POST['reply'])."',
'active',
'" . date("Y-m-d") . "',
'" . date("G:i:s") . "')";
mysql_query($query, $connection);
}
<?php if(isset($_POST['sub_comment_reply']) && $post_count >= $max_reply_per_day ) {
foreach($error_msgs_max_reply as $msg) { ?>
<div id="error_x">
<?php echo $msg; ?>
</div>
<?php }
}?>
//THE JS FOR THE REPLIES
<script type="text/javascript">
$(document).ready( function() {
$.localScroll({ offset:{top:-40,left:0} });
$("a.reply_link").click( function() {
$("#"+$(this).attr('name')).fadeIn('slow');
});
$(".respond_nevermind a").click( function(event) {
event.preventDefault();
var reply_box = document.getElementById($(this).attr('href'));
$(reply_box).css('display','none');
var reply_textarea = document.getElementById($(this).attr('href')+"_textarea");
$(reply_textarea).val('');
});
});
</script>
答案 0 :(得分:5)
PHP在执行JavaScript之前在服务器上运行,因此两者无法进行交互。 JavaScript 可能与PHP生成的HTML有问题(换句话说,只有JavaScript错误)或HTML本身可能包含错误,例如缺少关闭{{1}或引用。
答案 1 :(得分:0)
在第二次<?php
通话后,您似乎没有正确关闭mysql_query()
代码。您正在打开一个新的<?php
代码,但我没有看到之前的<?php
代码被关闭。