2013-07-15 64 views
0

任何人都可以看到一個問題,會阻止此代碼不''id''文本框發佈到'updateUser.php'頁面?我一直在坐着,盯着它看了30分鐘,不知道怎麼回事,爲了解決問題,我在另一邊迴應,$ newUser和$ username有正確的數據,但$ id從不填充,即使我爲表單中的值放置了一個字符串。傳遞表單數據與發佈問題

<table> 
<form method="post" action="updateUser.php"> 
<tr> 
<td></td><td align="right"><input type="text" id="id1" value="<?php echo "$id" ; ?  >" ></input></td> 
</tr> 
<tr> 
<td align="right">Enter your current password:</td><td align="right"><input type="text" id="user1"></td> 
</tr> 
</br> 
<tr> 
<td align="right">Enter your new username:</td><td align="right"><input type="text" id="user2"></td> 
</tr> 
<tr> 
<td></td><td><input type="submit" value="Change"></input></td> 
</form> 
</tr> 

而且這裏是有關updateUser.php:

$id = $_GET['id1']; 
$password = $_GET['user1']; 
$newUser = $_GET['user2']; 
$username = $_SESSION['username']; 
+2

'形式方法= 「郵報」'='$ _GET [...]'.. 。你需要使用'$ _POST' –

+2

也是你的輸入不具有'name'屬性 –

+1

你有一個看起來像'? >'在''元素中,儘管我沒有測試過,但我懷疑PHP不會試圖實現這一點。 ''>'它應該看起來像。 –

回答

2

有與你在這裏形式的幾個問題。

您需要從中獲取數據的任何輸入都應具有name=屬性。

收出的PHP代碼塊看起來應該像?>

觀察如何<input>接近下面的代碼元素。

一些HTML結構問題:我認爲<form>應該圍繞<table>,如果你需要表格行之間的空間,應該用樣式來完成,而不是<br />

以下是清理代碼:

<form method="post" action="updateUser.php"> 
    <table> 
     <tr> 
      <td></td> 
      <td align="right"><input type="text" id="id1" name="id1" value="<?php echo htmlentities("$id", ENT_QUOTES); ?>" /></td> 
     </tr> 
     <tr> 
      <td align="right">Enter your current password:</td> 
      <td align="right"><input type="text" id="user1" name="user1" /></td> 
     </tr> 
     <tr> 
      <td align="right">Enter your new username:</td> 
      <td align="right"><input type="text" id="user2" name="user2" /></td> 
     </tr> 
     <tr> 
      <td></td> 
      <td><input type="submit" value="Change" /></td> 
     </tr> 
    </table> 
</form> 

還要注意,在htmlentities()電話的聯繫人,你$id有奇怪的字符,或者不是一個整數。可能沒有必要,但只是確保。

隨着方法= '後',你的代碼獲取這些變量將如下:

$id = $_POST['id1']; 
$password = $_POST['user1']; 
$newUser = $_POST['user2']; 
+0

它需要名稱屬性和$ _POST,看起來像我需要閱讀的形式和PHP :)謝謝你們。 – HondaKillrsx