2013-03-13 2 views
2

Я не могу получить значения $ _POST ['name'], отправленные из html-формы в моем php-файле. Я видел много подобных вопросов, но ничего не помогло. У меня много предложений, поэтому я считаю, что это проблема с областью, но я не могу понять это.

index.php

print_r($_POST); //Returns nothing, tried other ways too 

//lot's of variables being defined 

include 'sql_data_handlers.php'; 
//instantiating some things 

sql_data_handlers.php

//some functions retrieving data from sql db and finally: 
include($DOCUMENT_ROOT . "page.html"); 

page.html

//html stuff 
<?php 
//Some conditions 
include($DOCUMENT_ROOT . "comment_form.html"); 
?> 

comment_form.html

<form action="index.php" name="comment_form" id="comment_form" method="post"> 
    <input type="text" name="name" value="Anonymous" required><br> 
    //lot's of inputs 
    <input type="submit"> 
</form> 

Раньше у action="send_comment.php", но я понял, что это может быть превращена в функцию, так что я CTRL + C и приспособленный send_comments.php к функции на sql_data_handlers.php. Проблема в том, что теперь я не могу получить значения $_POST на index.php для использования в функции на sql_data_handlers.php (который включен в index.php).

Я бы использовал action="my_php_function_from_data_handlers.php($args)" если возможно, но думаю. Кстати, я уже пробовал action="". Это может показаться довольно грязным, но таким образом мне нужен только один .html для макета сайта, страницы на sql и .php-файлы делают всю работу.

Полный источник всех файлов (довольно большой, по-прежнему работаем над этим): http://pastebin.com/2nRuCpNx

+2

Вы пытались изменить расширение своих .html-файлов на .php? –

+1

Если вы публикуете форму и проверяете запрос с помощью Firebug/F12/Developer Tools, можете ли вы увидеть данные POST? – Kaivosukeltaja

+0

Kaii прав, внутри html-файла (comment_form.html) вы используете PHP-код, и это не сработает. –

ответ

4

Убедитесь, что у вас нет каких-либо переадресаций, так как вы используете index.php, чтобы сохранить данные, вы» вероятно, перезагрузите страницу, чтобы показать обновленные комментарии. И если вы перезагружаетесь, то не будет данных о $ _POST, которые будут напечатаны print_r().

+0

Вот и все, скрипт .php обновлял страницу после нажатия кнопки отправки, так что переменные $ _POST были потеряны - - массив был фактически сгенерирован, я просто упустил это. Благодарю. – Alex

+1

Ты спас мой день. У меня было правило перезаписи, которое отправляло все 'http: // my_domain.com' на' http: // www.my_domain.com', и оно потеряло данные _POST в этом процессе. Может быть, мой комментарий помогает кому-то, кто использует правила перезаписи в файлах .htaccess. – DudeOnRock

+0

@DudeOnRock Рад я мог бы помочь :) –

0

Попробуйте изменить значение имени атрибута вводится в нечто отличное от «имени». Некоторые конфигурации имеют проблемы с этим, особенно Wordpress.

, например:

<input type="text" name="user_name" value="Anonymous" required> 
+0

Есть другие входы с другими именами, ни одна из них не отправляется. – Alex

+0

@ user117893 Я понял, и все же знаю, что это может вызвать проблемы. Нет никакого вреда в попытках, не так ли? –

0

Вы возражали бы, чтобы изменить

.html имя файла в .php файла

ваши коды работает на моем локальном сервере, потому что иногда разница заключается в том, как настроен ваш веб-сервер.

при работе в веб-сервере, то лучше использовать .php в файлах

+0

Я уже сделал, результат тот же - я не могу получить значения $ _POST. – Alex

+0

Вы используете свои коды на веб-сервере? –

+0

Да. Запросы $ _POST были отправлены на send_comments.php раньше, как я уже сказал. Пролем index.php не получает их по какой-то причине. – Alex

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