使用PHP和JavaScript验证表单?
是否可以使用PHP和JavaScript验证表单?目前,我可以使用现有的使用PHP和JavaScript验证表单?,php,javascript,validation,forms,Php,Javascript,Validation,Forms,是否可以使用PHP和JavaScript验证表单?目前,我可以使用现有的表单来完成这两项工作,但只能单独完成 我的总体目标是: 使用JavaScript客户端验证表单,并立即向用户显示任何错误 如果JavaScript验证通过,将创建一个标志,然后可以开始PHP脚本 在执行JavaScript验证时,我在表单标记中使用以下代码: <form id="Enroll_Form" action="review.php" method="post" name="Enroll_Form" onsu
表单
来完成这两项工作,但只能单独完成
我的总体目标是:
表单
标记中使用以下代码:
<form id="Enroll_Form" action="review.php" method="post" name="Enroll_Form" onsubmit="return Enroll_Form_Validator(this)" language="javascript">
如果我想处理PHP验证,我将被迫将操作重命名为
PHP\u SELF
文件(或与我使用的文件名相同),并删除“onsubmit”函数。如果在非(javascript)情况下,onsubmit
操作返回false
,我真的不知道问题出在哪里经过验证的表单,如果启用了javascript,表单就不会被提交
一旦表单被提交,php就可以做任何它想做的事情,验证、返回错误等等。我没有尝试过这个,但我只是一时兴起;表单中不需要
language=“JavaScript”
就可以使用onsumbit
事件处理程序。如果该事件的计算结果为true
,则表单将正常提交(因此PHP将看到它并可以进行验证)
很高兴看到您不依赖客户端验证。在浏览器中禁用JavaScript很简单。人们应该始终验证自己的输入。不要太依赖JS来完成这类工作。是的,您可以进行验证以防止用户出错,但有人可以轻松创建
.html
并执行此操作
<form action="http://yoursite.com/review.php" method="post">
<input type="submit">
</form>
并绕过任何JS验证。在PHP中进行验证,就像在没有任何JS验证时一样。更新了,以响应注释 首先,javascript不能成为一个安全的验证器,原因很明显!它可以是一种显示警报和通知的奇特方式,但它只是一种糖 真正的验证必须在PHP或其他服务器端语言中完成,也必须在数据库端通过检查和格式化值来完成 这个简单的脚本只是演示如何构建一个智能验证器,当然也只是一个概念证明
演示:
然后,关于
操作,您不需要在其中包含php页面的路径,但必须使用AJAX来制作文章或,只需留下评论。php
在哪里请参见下面的代码片段:
// FIRST SNIPPET action="#"
if ( error == false ) {
//if all is ok give our form it's php
$(this).attr('action','review.php');
} else {
// error
// place false here so the form don't submit if validation fail!
return false;
}
// SECOND SNIPPET action="review.php"
if ( error == true ) {
// form submit only if validation pass
return false;
}
// THIRD SNIPPET action="#" AJAX
if ( error == false ) {
// success
} else {
// error
}
// this false prevent the form submit in anycase, cause we use AJAX
return false;
为什么您认为表单操作必须是PHP_SELF(具有相同的文件名)?如果我希望PHP验证返回的结果显示在同一页面上,那么该操作必须是同一页面的(如果发现错误,则在提交后使用发布的数据进行填充)。我首选的方法是使用相同的PHP函数通过AJAX验证服务器端和客户端。只需在AJAX将请求的页面中包含验证函数,然后在服务器端处理表单时再次执行这些函数。@Byron,使用这种方法,您将失去客户端验证的一个关键好处:即时反馈。@nickf,也许只有我一个人,但我不得不做的大多数验证都涉及数据库查询,所以这似乎是一种非常自然的方法。它还可以防止其他项目人员学习JavaScript。我在这里说的是,JavaScript实际上正在运行,但如果我以这种方式使用它,PHP将不会运行。onsubmit函数重写表单字段中的“action”!JS允许您通过突出显示表单字段使其变得“漂亮”。在PHP中更难做到,我认为您展示的示例很有趣,但不确定它是否达到了我的目的。这里是否正在进行任何实际的JS验证,或者这都是服务器端验证?我不会说谎-我必须为这个站点完成的字段验证太多,而且不有趣。@J m 4这个表单只是检查表单字段是否为空。这里没有任何数据检查。使用PHP正则表达式或其他任何东西。弗雷登,你是对的,我已经删除了不推荐使用的语言。谢谢
// FIRST SNIPPET action="#"
if ( error == false ) {
//if all is ok give our form it's php
$(this).attr('action','review.php');
} else {
// error
// place false here so the form don't submit if validation fail!
return false;
}
// SECOND SNIPPET action="review.php"
if ( error == true ) {
// form submit only if validation pass
return false;
}
// THIRD SNIPPET action="#" AJAX
if ( error == false ) {
// success
} else {
// error
}
// this false prevent the form submit in anycase, cause we use AJAX
return false;