我创建一个基于jQuery开发验证插件评论形式(http://docs.jquery.com/Plugins/Validation)。我知道JavaScript很容易被黑客操纵,所以我想知道如何通过php进行验证,以确保评论表单不会产生大量的垃圾邮件?PHP/AJAX/Jquery的评论表单验证
JS的是直接从验证插件。 html表单直接来自JS验证插件页面。额外的js如下:
<script>
$(document).ready(function(){
$("#commentForm").submit(function(){
if($("#commentForm").validate()){
$.ajax({
type: 'POST',
url: 'process.php',
data: $(this).serialize(),
success: function(returnedData){
alert(returnedData);
}
});
}
return false;
});
});
</script>
<form class="cmxform" id="commentForm" method="POST" action="process.php">
<label for="cname">Name</label>
<input id="cname" name="name" size="25" class="required" minlength="2" />
<label for="cemail">E-Mail</label>
<input id="cemail" name="email" size="25" class="required email" />
<label for="curl">URL</label>
<input id="curl" name="url" size="25" class="url" value="" />
<label for="ccomment">Your comment</label>
<textarea id="ccomment" name="comment" cols="22" class="required"></textarea>
<input class="submit" type="submit" value="Submit"/>
目前php是相当标准的。不知道如何将验证与js和ajax集成:
<?php
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]';
mail($to, $subject, $message, $headers);
print "Form submitted successfully: <br>Your name is <b>".$_POST['cname']."</b> and your email is <b>".$_POST['email']."</b><br>";
?>
感谢您的任何帮助。有人评论说这是模糊的。为了澄清:
我知道如何使用PHP来验证电子邮件长度,不必要的字符,等等。我不知道如何jQuery的验证插件通过Ajax的工作原理。我需要知道如何配置我的php条件以正确验证评论表单以防止垃圾邮件。
这是非常宽泛的。但是你可以使用http://php.net/manual/en/function.strlen.php(strlen的)验证的变量的长度,你可以使用正则表达式http://www.linuxjournal.com/article验证电子邮件/ 9585。它将采用js和php验证的组合来防止某人在未通过js验证的情况下手动提交表单。然后,您可以将json返回到您的前端,或者在验证失败时忽略该请求。 – 2012-02-19 22:09:38
我了解php验证的概念。我不明白如何将这些概念与jQuery验证插件和ajax集成。我已经在上面澄清了。谢谢 – 2012-02-19 22:17:03
我几乎肯定这两件事彼此独立,你应该通过javascript和php验证它。因为有些人可以在不使用表单的情况下打你的终端。 – 2012-02-19 22:19:13