У меня есть простая контактная форма на веб-сайте с двумя текстовыми полями, 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>