2

コメントとコメントへの返信を制限し、制限に達するとエラー メッセージを表示しようとしています。コメントとコメントの返信を制限することに成功し、コメントの返信ではなくコメントのみを求められたときにエラーメッセージを正常に提供しました。

コメントの返信には 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>
4

2 に答える 2

5

PHP は JavaScript が実行される前にサーバー上で動作するため、この 2 つが相互作用することはありません。JavaScriptは、PHP によって生成された HTML に問題がある可能性があります (つまり、JavaScript エラーがあるだけです)。または、HTML 自体に、終了>や引用符の欠落などのエラーが含まれている可能性があります。

于 2012-04-27T23:59:10.077 に答える
0

2 回目の呼び出し<?phpの後、タグを適切に閉じていないようです。mysql_query()新しいタグを開いていますが、以前のタグが閉じられ<?phpていません。<?php

于 2012-04-28T00:16:19.693 に答える