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 はサーバー側のコードです。ページを検証するには、サーバーへの往復を行う必要があります。フォームが検証されない場合は、問題を説明するマークアップとともに、フォームを同じページにリダイレクトできます。

とはいえ、javascript を無効にしている人は1% 程度しかいないので、私はそれについて心配する必要はありません。

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 に答える