2009-11-15 3 views
2

Я новичок в php и пробую очень простые тесты, чтобы начать.

Кажется, что мне не удается получить какие-либо значения из $ _GET.

Это test.php

#!/usr/bin/php 

<html> 
<body><h1>GET test</h1><p> 
<?php 
    print_r($_GET); 
?> 
</p></body></html> 

производит следующее при вызове с http://my.url/test.php?aValue=A&bValue=B

<html> 
<body><h1>GET test</h1><p> 
Array 
(
) 
</p></body></html> 

У меня нет доступа на запись в /etc/php.ini на сервере, но проверить register_globals и он выключен.

Я также пробовал использовать метод $ _POST, но это также не работает.

PHP версии: PHP 5.1.6

+2

Try 'Эхо $ _SERVER [ 'QUERY_STRING'] '. Это должно дать вам необработанную строку запроса (aValue = A & bValue = B в вашем примере). Если это дает вам правильное значение, вероятно, это ошибка конфигурации –

+3

Вы вызываете это из командной строки или из браузера? Первая строка кода показала бы, что вы также получаете доступ к ней через командную строку. –

+0

Спасибо Джеффри: echo $ _SERVER ['QUERY_STRING'] работал, поэтому теперь мне просто нужно отследить ошибку конфигурации. Спасибо gabriel: Я вызываю его из браузера, но я обнаружил, что, если строка shebang не была там, я получил 500 ошибок. – Myf

ответ

4

В $ _GET и $ _POST переменные доступны только в том случае track_vars включен.

С версии PHP 4.0.3, которая всегда автоматически включена.

Вы можете проверить свою версию PHP, а также проверить значение track_vars в php.ini?

Было бы также полезно проверить phpinfo();

<?php 
phpinfo(); 
?> 

Проверка на

  • что называется --enable-track-vars, который должен присутствовать.

  • _SERVER["argv"], должен содержать массив, если вы передаете вары через запрос GET.

  • также «Загруженный файл конфигурации» должен быть разрешен к файлу, который, по вашему мнению, является.

Источник: PHP: Description of core php.ini directives

+2

Спасибо, nash. Версия PHP - это PHP 5.1.6. Я проверил php.ini и не было настройки track_vars. Однако были некоторые комментарии о том, как он работает по умолчанию. Я пробовал phpinfo(), и похоже, что это правильно (--enable-track-vars был там). – Myf