0

我需要使用 php 验证表单。当我去验证时,如果验证失败,我需要它留在同一页面上。这可能吗。我知道这可以通过使用 javascript 来完成,但我试图迎合那些关闭 javascript 的人。

4

4 回答 4

0

不可以。如果您不愿意使用 Javascript,则必须提交表单(并转到新页面)以进行验证。

于 2013-06-16T04:57:02.617 回答
0

将所有变量放入字符串中,然后使用post方法进行验证,如果有问题将变量从字符串中取出

$name = $_POST['name'];

<form action="validate.php" method="POST" value="$name">
<input type="text" id="name" /> 
</form>
于 2013-06-16T04:58:54.770 回答
0

PHP是服务器端代码。为了验证页面,您需要往返于服务器。如果表单未通过验证,那么您可以将它们重定向回相同的页面,以及一些解释问题的标记。

也就是说,只有约 1%的人禁用了 javascript,所以我不会担心。

即使您确实在 javascript 中执行客户端表单验证,您也应该始终验证服务器端。

于 2013-06-16T04:59:00.030 回答
0

虽然没有客户端帮助是不可能的,但可以通过将 for 发布到承载表单的页面来模拟结果。

if ($_SERVER["REQUEST_METHOD"] == "POST"){
       // validate your form and set placeholder variables for error messages.
       if(empty($_POST["username"])) $userError = "You must supply a username";

       // if the form is valid do a header redirect

       header("Location: http://mysite.com/myaccount/");

}
<form method='post'>
      <label for='username'>Username: </label>
      <input id='username' name='username' type='text' 
             value='<?= isset($_POST["username"])?$_POST["username"]:"" ?>'>
      <?= isset($userError)?$userError:"" ?>
</form>
于 2013-06-16T05:04:04.447 回答