如果没有输入验证码,人们如何在我的留言簿上发帖?

时间:2013-05-23 17:06:04

标签: captcha

我添加了一个文本框,以确保垃圾邮件发送者不会在我的留言簿上发帖。我用中文写了这个问题所以它更难(我希望),但似乎没有用。如你所见,垃圾邮件发送者仍然可以发帖。怎么做?

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>留言板</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 "沒有內容";
    }
}

2 个答案:

答案 0 :(得分:1)

您需要检查服务器端验证码的答案(例如,在guestbook_process.php中)。垃圾邮件发送者只是不执行您的Javascript。只是尝试在浏览器中禁用javascript并亲自查看。

答案 1 :(得分:0)

什么是5 + 7是你的问题..

你能做的是:

<?php
$int = 12;

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

我不知道这是否是最好的解决方案,但这可能有用..