2013-07-15 2 views
0

Может ли кто-нибудь увидеть проблему, которая помешала бы этому коду не отправлять текстовое поле 'id1' на страницу '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, который выглядит как '? > 'в элементе' ', и хотя я не тестировал, я подозреваю, что 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

ему нужен атрибут name и $ _POST, похоже, мне нужно читать формы и PHP :) спасибо, ребята. – HondaKillrsx

Смежные вопросы