Проблема с использованием $ _POST с текстовым полем

У меня есть простая контактная форма на веб-сайте с двумя текстовыми полями, 1 текстовой областью и 1 скрытым полем.

По какой-то причине все поля POST для PHP-скрипта, кроме текстового поля. Я делал это тысячу раз раньше и никогда не имел этой проблемы.

Вот мой HTML:

<form action="scripts/contactform.php" method="post"> <table width="0" border="0" cellspacing="3" cellpadding="5" class="gpass"> <tr> <td>Name:</td> <td><input name="name" type="text" maxlength="50" /></td> </tr> <tr> <td>E-mail:</td> <td><input name="email" type="text"/></td> </tr> <tr> <td>Message:</td> <td><textarea name="comment" id="comment" cols="30" rows="5"></textarea> <input type="hidden" value=" <?php echo $_SERVER['REMOTE_ADDR'];?>" name="address" /> </td> </tr> <tr> <td colspan="2" align="center"><input name="submit" type="submit" value="Submit" class="noround" id="regbut" /><input name="reset" type="reset" value="Reset" class="noround" id="regbut"/></td> </tr> </table> </form> 

И мой сценарий выглядит так:

 $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if(!$link) { die('Failed to connect to server: ' . mysql_error()); } $db = mysql_select_db(DB_DATABASE); if(!$db) { die("Unable to select database"); } $name = mysql_real_escape_string($_POST['name']); $email = mysql_real_escape_string($_POST['email']); $comment = mysql_real_escape_string($_POST['comment']); $ipaddress = mysql_real_escape_string($_POST['address']); 

У меня есть несколько вещей, чтобы обрабатывать данные под этим, но это не имеет значения, поскольку переменная $comment не определена. Я искал весь скрипт и нет имен конфликтующих переменных.

Я совершенно не понимаю, почему это происходит. Я успешно обработал textarea на моем сайте несколько раз раньше, так что это действительно запутанно.

Однажды я испытал ошибку, похожую на твою. Что мне помогло – это использовать разные параметры id и name . Попробуйте сами убедиться, потому что у вас здесь одинаковые.

Хотя в вашем случае у вас нет установленного textarea , причина, по которой я нашел этот пост, состояла в том, что я не получал значение из textarea которое было. Итак, вот записка для кого-то еще с этой проблемой.

Чтобы POST значение из textarea поля, в котором вы хотите, чтобы поле было невоспроизводимым, используйте readonly вместо disabled – либо непосредственно в html, либо через setAttribute в JavaScript – и затем используйте CSS, чтобы выделить его, например:

 textarea[readonly] {background-color:#F0F0F0;}) 

Вам нужно только добавить значение идентификатора в форму, а затем добавить атрибут формы в текстовое поле со значением идентификатора формы

 <form id="sample".....> <textarea name="aba" form="sample".....></textarea> </form>