【发布时间】:2012-02-19 22:03:39
【问题描述】:
我正在创建一个基于 jquery 验证插件 (http://docs.jquery.com/Plugins/Validation) 的评论表单。我知道 javascript 很容易被黑客操纵,所以我想知道如何通过 php 进行验证以确保评论表单不会产生大量垃圾邮件?
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 = 'sdfsadfssfasd@gmail.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com';
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 条件以正确验证评论表单以防止垃圾邮件。
【问题讨论】:
-
这很模糊。但是您可以使用php.net/manual/en/function.strlen.php (strlen) 验证变量的长度,您可以使用正则表达式linuxjournal.com/article/9585 验证电子邮件。它将结合使用 js 和 php 验证来防止有人在未通过您的 js 验证的情况下手动提交表单。然后,您可以将 json 返回到您的前端,或者如果验证失败则忽略该请求。
-
我了解php验证的概念。我不明白如何将这些概念与 jquery 验证插件和 ajax 集成。我上面已经澄清了。谢谢
-
我几乎肯定这两件事是相互独立发生的,你应该通过 javascript 和 php 来验证它。因为有些人可以在根本不使用您的表单的情况下击中您的端点。
标签: php ajax forms validation