Javascript 如何在php中验证表单,然后提交表单?

Javascript 如何在php中验证表单,然后提交表单?,javascript,php,jquery,forms,Javascript,Php,Jquery,Forms,我正在使用php在提交前验证我的表单,我想发布到index.php,但我有两个问题: 如果我对$\u SERVER执行表单操作,它将验证表单,而无需进入index.php并在那里触发代码: <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" id="contact" name="contact" method="post" 如果我执行action=index.php操作,它将在不验证的情况

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

  • 如果我对
    $\u SERVER
    执行表单操作,它将验证表单,而无需进入index.php并在那里触发代码:

    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" id="contact"  name="contact" method="post"
    
  • 如果我执行
    action=index.php
    操作,它将在不验证的情况下提交表单:

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

    给你一些提示

  • 不要使用
    $\u服务器['PHP\u SELF']
    。改用
    action=”“

  • 除非您有非常复杂的验证需求,否则不要使用JavaScript进行验证

    <input type="text" name="fname" required />
    <input type="email" />
    <input type="number" min="0" max="99" />
    
    
    这些只是您可以做的一些示例,所有这些都将阻止表单在验证未通过时提交,即使浏览器的JavaScript被禁用

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


  • 如果您想在将表单数据提交回PHP脚本之前验证表单数据,则需要学习javascripti。我建议您在验证后在客户端验证表单,您可以发送ajax请求来处理服务器端数据。验证客户端,但请记住决不信任客户端数据。您还应该在服务器上进行验证。为什么不首先将验证代码放在数据提交到的脚本中?也许您需要知道的只是如何使用
    头('Location xxx.php')
    这样你就可以让你的PHP验证脚本重定向到你流中的下一个页面。所以现在我删除了$\u服务器['PHP\u SELF'],并使用了action=“”,我没有添加任何操作,因为和以前一样,如果我放置index.PHP,它将提交表单而不进行验证。现在它进行验证,但不会提交到index.php
    <input type="text" name="fname" required />
    <input type="email" />
    <input type="number" min="0" max="99" />