PHPを使用してフォームを検証する必要があります。検証に行くとき、検証が失敗した場合でも同じページに留まる必要があります。これは可能ですか。JavaScriptを使用して実行できることは知っていますが、JavaScriptをオフにする人に対応しようとしています。
質問する
122 次
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 に答える