2017-06-12 22 views
0

我創建了一個表單,要求輸入用戶名和密碼以進行註冊,並且我使用action=""和檢查$_POST變量將數據發送到同一頁,但數據沒有通過此方法傳遞。當我通過將條件更改爲true並重新加載頁面來打印$POST數組時,POST數組爲空,我也可以在URL中看到作爲POST傳遞的變量。有人可以解釋什麼是問題?PHP表單數據未被POSTED

代碼:

<!DOCTYPE html> 
<html> 

     <?php 
     if(isset($_POST['user'])) 
     { 
      echo "Data coming"; 
      die(); 


     } 


else { 

     ?> 
     <form method="POST" enctype="multiform/form-data" action=""> 
     <b> Username: </b><input type='text' name='user'> <br> <br><br> 
     <b> Password:</b> <input type='password' name='pass'><br> <br> 
     <input type='submit' value="Submit"> 


    </form> 

<?php 

} 
?> 
</html> 
+0

'multiform/form-data'? 'enctype'沒有這樣的值 –

+0

除了'multiform/form-data'不是一個正確的MIME類型(正確的是'multipart/form-data'),如果你沒有'' 'FILE'類型的元素不需要改變'enctype'的值。默認的一個('application/x-www-form-urlencoded')在這種情況下是最好的。 – axiac

回答

0

你必須給還提交按鈕的名稱。

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

您檢查$_POST指數「提交」和提交的表單取值與輸入類型的名稱。所以你必須提供名稱來提交按鈕也像上面一樣。

+0

我也檢查了$ _POST ['user']但是最初產生了相同的結果。但現在它的工作非常感謝。你能幫我解釋爲什麼我可以在URL中看到POST數據嗎? – user3930213

+0

@ user3930213從不需要的表單標記中刪除'enctype =「multiform/form-data」'。併發布數據永遠不會在URL中。 –

0

你在你的,如果isset名爲後檢查: $ _ POST [「提交」]

您的提交按鈕沒有 名=提交

作爲一個測試,看看你正在發送用於調試,嘗試把這個在你的代碼,它會幫助你自我調試:

print_r($_REQUEST); 
0

「輸入類型=‘提交’名稱=」提交」 ... 更改爲這個 $ _POST ['Submit'] 在您重新加載頁面時查找名爲Submit的資源,因爲在代碼中沒有名稱爲Submit的資源,if語句返回false並且控件切換回else部分。 爲提交按鈕命名並在後期varibale選項中使用相同的名稱。