Разница между .php и .cgi

Archer

Новичок
Разница между .php и .cgi

Имеются 2 папки www (хранит страници сайта) и cgi (c описанием в php.ini как ScriptAlias).
В обеих папках файл с одинаковым скриптом:
PHP:
<?
echo "Content-Type: text/html\n\n";
foreach ($_GET as $key => $val) { 
   print $key.' => '.$val.'<br>'; 
}
echo $_SERVER['QUERY_STRING'];
?>
В строке браузера запускаю в виде http://mysite/test.php?sname=sname или
http://mysite/cgi/test.cgi?sname=sname
Первый файл выдает результат sname=>sname, второй ничего, хотя в переменной $_server['query_string'] содержит sname=sname.
Вопрос: получается, что переменные, которые я передаю в cgi сценарию надо выделять из переменной $_server['query_string'], как из строки?

PHP 5.0.1, Apache 2.0.55

PS. В файле cgi я не забыл строчку #!c:\program files\php\php.exe
 

_script

Новичок
а ты уверен что .cgi вообще сработал? Рекомендую почитать про функцию var_dump()
 

Archer

Новичок
var_dump() выдает пустой массив, в файле с расширением cgi.
В этом файле идет подключение к MySQL серверу, выбор БД и запрос к базе. Все команды проходят отлично. Значит сам сценарий работает, только переменные не передаются ни в $_GET, ни в $_POST.
 

_script

Новичок
я сейчас пробовал все прекрасно работает(правда у меня linux и PHP 5.0.5)

попробуй:

phpinfo(INFO_VARIABLES);
 

Archer

Новичок
Тоже самое. REQUES_METHOD = GET, QUERY_STRING = sname=sname, а переменная $_GET пустой массив.
Я сделал при помощи parse_str() и обрабатывать массив результатов. А попробуй передать данные методом POST.
 

_script

Новичок
до меня дошло.. у меня тоже $_GET пустой. И да parse_str() тебе в руки.
 
Сверху