2012-01-18 2 views
1

Начну с того, что я видел несколько похожих вопросов, но мне еще предстоит найти решение моей проблемы.

У меня есть следующая страница: test.php.

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Test</title> 
     <meta charset="UTF-8"> 
    </head> 
    <body> 
     <p><?php print_r($_POST); ?></p> 
     <hr /> 
     <p><?php echo empty($_POST) ? 'Empty' : 'Not empty'; ?></p> 
     <hr /> 
     <form action="test.php" method="post"> 
      <input id="example" type="text" /> 
      <input id="submit" type="submit" value="Send" /> 
     </form> 
    </body> 
</html> 

После отправки формы с текстом на входе массив $ _POST всегда пуст. Поскольку несколько ответов, которые я видел, упомянули настройки PHP, я скопировал файл php.ini ниже.

register_globals = off 
allow_url_fopen = off 

expose_php = Off 
max_input_time = 60 
variables_order = "EGPCS" 
extension_dir = ./ 
upload_tmp_dir = /tmp 
precision = 12 
SMTP = relay-hosting.secureserver.net 
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset=" 

Если это имеет значение, я использую хостинг GoDaddy и не изменяю настройки по умолчанию каким-либо значительным образом. Любая помощь будет оценена по достоинству.

ответ

10

Вам необходимо использовать атрибут name, а не атрибут ID. Если ни один элемент не имеет атрибута имени, в массиве не будут отображаться данные.

<form action="test.php" method="post"> 
     <input name="example" type="text" /> 
     <input name="submit" type="submit" value="Send" /> 
    </form> 
+0

Спасибо! Не знаю, как я это пропустил :) – user1155252

+1

Я использую «имя», но имею ту же проблему, что и OP ... больше предложений? – dialex

+0

OMG. Я думал, что схожу с ума. Его удивительные мелкие детали, которые мы можем забыть о простом HTML. Благодарю. – zkent

2

Атрибут name используется при отправке данных при отправке формы. Поэтому вам необходимо указать атрибут name.

<input id="example" name="example" type="text" /> 
<input id="submit" type="submit" value="Send" /> 
4

Используйте имя атрибута вместо или, а также идентификатор

<input name="example" id="example" type="text" /> 
0

Ничто не работал для меня, за исключением, когда я удалил encoding="text/plain" из form. Это, по-видимому, строго запрещено.

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