使用PHP和JavaScript验证表单?

时间:2010-05-10 21:36:39

标签: php javascript validation forms

是否可以使用 PHP JavaScript 验证表单?我现在可以使用我现有的form进行这两项工作,但仅限于个人。

我的总体目标是:

  1. 使用 JavaScript 客户端验证表单,并立即向用户显示任何错误。
  2. 如果 JavaScript 验证通过,则会创建一个标记,然后 PHP 脚本就可以开始了。
  3. 在进行 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'功能。

4 个答案:

答案 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中进行验证。