是否可以使用 PHP 和 JavaScript 验证表单?我现在可以使用我现有的form
进行这两项工作,但仅限于个人。
我的总体目标是:
在进行 JavaScript 验证时,我在form
标记中使用以下代码:
<form id="Enroll_Form" action="review.php" method="post" name="Enroll_Form" onsubmit="return Enroll_Form_Validator(this)" language="javascript">
如果我想处理 PHP 验证,我不得不将操作重命名为PHP_SELF
文件(或者只是我正在使用的文件名)并删除' onsubmit'功能。
答案 0 :(得分:3)
更新以回复评论
首先,由于显而易见的原因,javascript无法成为安全验证器!它可以是显示警报和通知的奇特方式,但只是糖!
必须通过检查和格式化值,在PHP或其他服务器端语言以及数据库端进行真正的验证!
这个简单的脚本只是一个如何构建智能验证器的演示,但当然只是一个概念证明!
DEMO: http://jsbin.com/aceze/29
$(function() {
$('#myform').submit(function() {
var error = false; // flag
$('.email,.digits,.empty,.some').each(function() {
var check = this.className;
if (check == 'empty') if (!checkEmpty(this.value)) error = true;
if (check == 'digits') if (!checkDigits(this.value)) error = true;
if (check == 'email') if (!checkEmail(this.value)) error = true;
if (check == 'some') if (!checkSome(this.value)) error = true;
if (error) {
$(this).css('border', '1px solid red');
} else {
$(this).css('border', '1px solid green');
}
});
if (error) {
return false;
}
});
});
然后关于<form>
操作,您不需要在其中包含php页面的路径,但是您必须使用AJAX使POST OR 只留下{ {1}}在哪里可以看到下面的theese片段:
review.php
答案 1 :(得分:0)
如果您的onsubmit
操作在非(javascript)验证表单的情况下返回false
,则表示根本没有提交如果启用了javascript。
表单一提交,php就可以做任何想做的事,验证,返回错误等等。
答案 2 :(得分:0)
我没有试过这个,但是我的头脑却没有;您不需要表单中的language="JavaScript"
来使用onsumbit
事件处理程序。如果该事件的计算结果为true
,那么表单将正常提交(因此PHP会看到它并可以进行验证)。
很高兴看到您不依赖于客户端验证。在浏览器中禁用JavaScript是微不足道的。一个人应该总是验证一个人的输入。
答案 3 :(得分:0)
不要过分依赖JS这种东西。是的,您可以进行验证以防止用户出错,但有人可以轻松创建.html
并执行
<form action="http://yoursite.com/review.php" method="post">
<input type="submit">
</form>
绕过任何JS验证。如果没有任何JS验证,请在PHP中进行验证。