2017-10-06 15 views
0

こんにちは私は新入社員です。なぜ隠しボックスは、フォームでPHPのポストメソッドを使用して

私はなぜ非表示のテキストボックスを使用しており、与えられた値= 1であるかを尋ねています。

<input type="text" name="form_submitted" value="1"/> 

<html> 

<head> 

<title>Registration Form</title> 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

</head> 

<body> 

<?php if (isset($_POST['form_submitted'])): ?> 

<?php if (!isset($_POST['agree'])): ?> 

<p>You have not accepted our terms of service</p> 

<?php else: ?> 

<h2>Thank You <?php echo $_POST['firstname']; ?></h2> 

<p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> 

<p> Go <a href="sample.php" >back</a> to the form</p> 

<?php endif; ?> 

<?php else: ?> 

<h2>Registration Form</h2> 

<form action="sample.php" method="POST"> 

First name: <input type="text" name="firstname"><br> 

Last name: <input type="text" name="lastname"><br> 

Agree to Terms of Service: <input type="checkbox" name="agree"> <br> 

**<input type="hidden" name="form_submitted" value="1"/>** 

<input type="submit" value="Submit"> 

</form> 

<?php endif; ?> 

</body> 

</html> 
+0

あなたの質問は非常に不明です。 –

+0

なぜ非表示入力を使用していても、その場所はスクリプトの上部ではなく、「

」要素内にあります。 – axiac

答えて

1

この場合、開発者がこれを行った理由は、最初のIF文で使用されているためです。

if (isset($_POST['form_submitted'])): 

フォームが送信されると、同じファイルに送信されます。フォームが送信されると、フォーム値はPHPの$_POSTパラメータメーターでアクセスできます。したがって$_POST['form_submitted']が設定されている場合、彼は次のコードを実行し、そうでなければelse:のコードが実行されます

また、このコードはフォーム提出の処理方法の良い例ではありません改善されました。

0

開発者は<input type="hidden" name="form_submitted" value="">を使用していますが、フォーム提出の参照として使用することがあるためです。彼らは、条件または何らかの機能を使用して、hidden入力で使用することができます。

正確な入力(入力テキスト)を表示する代わりに、よりきれいなフォームのためにそれを隠しています。

関連する問題