0

スパマーがゲストブックに投稿しないように、テキスト ボックスを追加しました。私は質問を中国語で書いたので難しいですが(願っています)、うまくいかないようです。ご覧のとおり、スパマーはまだ投稿できます。それはどのように行われますか?

http://www.badmintontw.com/guestbook.php

ありがとうございました。

フォームコード:

<script>
$(document).ready(function(){
    $('#guestbook').submit( function(){
        return valid_form();
    });
});

function valid_form()
{
    if ( $('#content').val() == ''){
        alert('沒有留言');
        return false;
    }
    if ($('#sum').val() != 12){
        alert('請輸入正確的數字');
        return false;
    }
 return true;
}


</script>
<h1>留言板&lt;/h1>
<p>對本網站有任何想法、問題,歡迎在此留言!</p>
<form name="guestbook" id="guestbook" action="guestbook_process.php" method="post">
    <!--<input type = "hidden" name = "post_id" value = "<?php echo $id; ?>">-->
    <textarea id="content" name = "content" placeholder="留言"></textarea>
    <br />五加七等於多少? <input type="text" name="sum" id="sum">
    <br /><input type="submit" name="submit" id="submit" value="送出">
</form>

また、guestbook_process.php には以下が含まれます。

if(isset($_POST['submit'])){
    if($_POST['content'] != ""){
        $guestbook_insert_sql = "insert into badminton.guestbook(guestbook_ip, content, time) values (:guestbook_ip, :content, current_timestamp)";
        $result = $db->prepare($guestbook_insert_sql);
        $result->execute(array( ':guestbook_ip' => $_SERVER['REMOTE_ADDR'],
                                ':content' => $_POST['content']));
        header("Location: guestbook.php");
    }else{
        echo "沒有內容";
    }
}
4

2 に答える 2

1

サーバー側でキャプチャへの回答を確認する必要があります (例: でguestbook_process.php)。スパマーはあなたの Javascript を実行しません。ブラウザで JavaScript を無効にしてみてください。

于 2013-05-23T17:20:01.510 に答える
0

5 + 7 は何ですか?

あなたができることは次のとおりです。

<?php
$int = 12;

if(!filter_var($12, FILTER_VALIDATE_INT))
  {
  //your code
  }
else
  {
  echo("Please enter a correct value");
  }
?> 

それが最善の解決策かどうかはわかりませんが、これでうまくいくかもしれません..

于 2013-05-23T17:45:28.617 に答える