php5 и метод "POST"

andrei_k80

Новичок
php5 и метод "POST"

Привет, у меня такая проблема:
в форме html странички стояла отправка данных web серверу методом POST.
На сервере стоял php4 и скрипты нормально принимали значения форм от странички,
из переменной $HTTP_POST_VARS['имя параметра'];
Так вот, я поставил на сервер php5, и данная переменная почему то невозвращает
значение форм.
В чем может быть проблема ?

Заранее благодарен.
 

andrei_k80

Новичок
нефига неполучилось решить проблему с помощью - $_POST['имя параметра']; или $_REQUEST - выдают пустую строку.
Хотя данные с html странички точно уходят скрипту ! (пробовал метод GET, виден параметр отправки в строке!)

может что нибудь в php5.1.2 надо сконфигурировать ?
 

andrei_k80

Новичок
--------------------------------------------------------------------------------

(пробовал метод GET, виден параметр отправки в строке!)
в web броузере на мой скрипт, вида:
http://mysite/cgi-bin/myscript.php&+?hello?

но скрипт невидет параметр hello в переменной $_GET
!
 

Фанат

oncle terrible
Команда форума
andrei_k80
http://mysite/cgi-bin/myscript.php&+?hello?
если ты так перевираешь адресную строку - ничего удивительного в том, что у тебя ничего не работает.

попробуй скопировать её сюда ещё раз.
авось, со второй попытки осилишь.

и скажи-ка нам, какой у тебя веб-сервер?
 

Фанат

oncle terrible
Команда форума
Гравицапа
да нет у него гета.
периодически всплывает этот вопрос, да.
я с cgi не работал, поэтому ответа не знаю.
 

Гравицапа

elbirret elcno
Фанат
хмм...да ты прав
и гугль ничего путнего кроме как парсить строку запроса не выдаёт
тоже было бы интересно узнать решения данной проблемы
не учитывая использования пхп как модуля
 

Breeze

goshogun
Команда форума
Партнер клуба
Я в свое время делал такую штуку, правда на перле, но не думаю что сильно отличается..

Строку запроса реально приходится парсить для гета, для поста все поинтереснее - с ним работается примерно так же как с письмом. Есть boundary, названия полей и др. читается из stdin.

потома просмотр CGI.pm показал, что все правильно делалось :)
 

God

Новичок
И на cli можно
Насчёт GET'а - почему бы просто не сделать
PHP:
parse_str(getenv('QUERY_STRING'), $_GET);
 

Gorynych

Посетитель PHP-Клуба
Автор оригинала: Andreika
Какой из вариантов SAPI установлен?: Выполните из командной строки php -v для получения информации о том, какой из двух модулей PHP установлен: CGI или CLI. Также вы можете использовать для этого функцию [m]php_sapi_name[/m]() или константу PHP_SAPI.
Не, не покатит. Из командной строки может вызываться совсем не то, что выполняется из под Апача, например у меня на сервере, по умолчанию, выйдет так:

> php -v
PHP 4.4.1 (cgi) (built: Nov 15 2005 17:03:52)

а вызов phpinfo() из php-сценария через браузер вернет для одного из моих доменов:
---
PHP Version 5.1.3
...
Server API CGI/FastCGI
---

а для другого (тут старая версия, подключена как модуль Апач):
---
PHP Version 5.0.5
...
Server API Apache
---

так что версионность для веб-скриптов нужно проверять через вызов phpinfo();
 

Gorynych

Посетитель PHP-Клуба
1) в теории, все что передалось (неважно, каким методом) должно быть собрано в массиве $_REQUEST

echo "<pre>";
print_r($_REQUEST);
echo "</pre>";

2) все информационое окружение (в том числе массивы $_GET, $_POST etc, содержащие переданные данные) , будут показаны при вызове phpinfo() - ны вызовете ее разок и посмотрите, что там?

3) глупый вопрос: а перед тем, как вы пытаетесь посмотреть что там в массиве, никаких действий над ним не производится? А то вдруг к мементу вывода отладочной печати из массива уже все поудалялось...
 
Сверху