2015-04-18 2 views
0

У меня есть вход в контактной форме для записи пользователей IP-адреса:Почему «отключенные» вызывают проблемы при отправке электронных писем?

<input type="text" class="form-control" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" disabled> 

Это работает нормально. Он показывает IP-адрес пользователя, когда он заполняет форму контакта.

Проблема заключается в том, что это в электронном письме.

Я включаю его в электронной почте с помощью:

$ip = $_POST['ip']; 

но он генерирует сообщение об ошибке при отправке:

Notice: Undefined index: ip in /var/www/contact.php on line 51 

Я не получаю сообщение об ошибке с другими входами поэтому я предполагаю, что это связано с использованием disabled в форме?

+0

Взгляните на [Отключенные входы формы не отображаются в запросе] (http://stackoverflow.com/q/7357256/908174). Голосование закрывается как дубликат. –

ответ

1

отключенный не вызывает эту ошибку, две вещи, которые вы должны сделать: 1. проверить, что ваш сайт проверен с помощью валидатора W3C. 2. Попробуйте использовать «readonly» вместо «disabled». Посмотрите, что произойдет. EDIT: 1. проверьте наличие мета-кодировки, используйте utf-8, все в порядке.

РЕДАКТИРОВАТЬ 2: Обратите внимание, что $_SERVER['REMOTE_ADDR']; не всегда разрешает IP-адрес клиента.

+0

'readonly' заставляет его работать. Почему все онлайн-ссылки говорят об использовании этого 'disabled'? Спасибо, что соглашусь, когда это позволит. –

+0

Вы можете найти более подробную информацию @ http://www.w3.org/TR/html401/interact/forms.html#disabled – odedta

0

Не использовать disabled.

ли это вместо:

<input type="hidden" name="ip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>"> 

Поскольку disabled означает, что значение этого поля не передается, когда форма была отправлена.

0

От MDN:

... значение инвалида элемента управления не связано с формой.

Вы можете решить это, используя readonly.

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