2017-10-06 52 views
0

嗨,我在新的Php。爲什麼隱藏的框在php中使用post方法在表單

我在問爲什麼我們使用隱藏文本框並給定值= 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 paremeter訪問表單值。所以,如果$_POST['form_submitted']設置,然後他執行下面的代碼,如果沒有,裏面else:的代碼被執行

我也不得不說,這個代碼是沒有的如何處理表單提交一個很好的例子,而應該是改進。

0

開發人員使用<input type="hidden" name="form_submitted" value="">,因爲他們有時使用它作爲表單提交的參考。他們可以將其用於條件或他們想要與hidden輸入一起使用的任何功能。

不是顯示確切的輸入(輸入文本),而是隱藏它以獲得更清晰的形式。

相關問題