如何在php中对表单进行alidate然后提交呢?

时间:2016-02-17 14:57:08

标签: javascript php jquery forms

我在提交之前使用php验证我的表单,我想发布到index.php,但我有两个问题:

  1. 如果我对$_SERVER执行表单操作,它将验证表单而不转到index.php并在那里触发代码:

    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" id="contact"  name="contact" method="post"
    

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        if (empty($_POST["fname"])) {
            $nameErr = "Name is required";
            $hasError = true; 
        } else {
            $name = test_input($_POST["name"]);
        }
    }
    
  2. 如果我action= index.php,则提交表单而不验证:

    <form id="contact" action="index.php" onsubmit="return validateForm()" method="post" >
    
  3. 所以我想验证表单然后提交。有什么建议?

1 个答案:

答案 0 :(得分:2)

给你一些提示。

  1. 请勿使用$_SERVER['PHP_SELF']。请改用action=""

  2. 除非您有非常复杂的验证要求,否则请勿使用JavaScript进行验证。

    <input type="text" name="fname" required />
    <input type="email" />
    <input type="number" min="0" max="99" />

    这些只是您可以执行的操作的一些示例,如果验证未通过,所有这些都将阻止表单提交,即使禁用了浏览器的JavaScript

  3. 即使您在浏览器中进行了验证(无论是JavaScript还是HTML5表单), 也必须 验证服务器上的输入。请记住,如果用户确定,用户可以随意向您发送任何内容,并且您只能信任您的服务器。