我添加了一个文本框,以确保垃圾邮件发送者不会在我的留言簿上发帖。我用中文写了这个问题所以它更难(我希望),但似乎没有用。如你所见,垃圾邮件发送者仍然可以发帖。怎么做?
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 "沒有內容";
}
}
答案 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");
}
?>
我不知道这是否是最好的解决方案,但这可能有用..