我在提交之前使用php验证我的表单,我想发布到index.php,但我有两个问题:
如果我对$_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"]);
}
}
如果我action= index.php
,则提交表单而不验证:
<form id="contact" action="index.php" onsubmit="return validateForm()" method="post" >
所以我想验证表单然后提交。有什么建议?
答案 0 :(得分:2)
给你一些提示。
请勿使用$_SERVER['PHP_SELF']
。请改用action=""
。
除非您有非常复杂的验证要求,否则请勿使用JavaScript进行验证。
<input type="text" name="fname" required />
<input type="email" />
<input type="number" min="0" max="99" />
这些只是您可以执行的操作的一些示例,如果验证未通过,所有这些都将阻止表单提交,即使禁用了浏览器的JavaScript 。
即使您在浏览器中进行了验证(无论是JavaScript还是HTML5表单), 也必须 验证服务器上的输入。请记住,如果用户确定,用户可以随意向您发送任何内容,并且您只能信任您的服务器。