[php] вопрос про передачу значений переменных

t332

почему не передаются значения переменных? где тут ошибка:
<>
<?
echo "<A href='link.php?var=123'>ссылка</A>";
?>
===========
<>
<?
echo $var;
?>
результат var='' (пустая строка)

bobby

сделай в php.ini:
register_globals = On
(ну, и если у тебя php работает модулем к апачу, перезапусти апач)

slonishka

у тибя стаит регистер_глобалс = офф в опаче.
нада падключить глабальныйэ переменныйэ.
дабаффь ф свой пхп скрипт строчки:
extract($HTTP_GET_VARS);

slonishka

не, регистер_глобалс = он - это гамно

bobby

если аккуратно писать, то можно и с register_globals.
но лучше, конечно, заекстрактить.

slonishka

аналагичным образом подключаюццо переменныйэ,
пиридавайэмыйэ методом пост, чириз куки и сервирныйэ, нопример.
extract($HTTP_GET_VARS);
extract($HTTP_POST_VARS);
extract($HTTP_COOKIE_VARS);
extract($HTTP_SERVER_VARS);

t332

register_globals = On
а php-скрипт это что? 8)

slonishka

это он:
<>
<?
echo $var;
?>
если регистер глобалс = он ребутни апач попробуй.

t332

опа! заработало! а как-нибудь, в настройки апача или еще куда-нибудь это (extract($HTTP_GET_VARS);) упрятать можно?

sinet

extract($HTTP_GET_VARS);
extract($HTTP_POST_VARS);
extract($HTTP_COOKIE_VARS);
extract($HTTP_SERVER_VARS);

А чтобы это заработало нужно ещё
register_long_arrays = On

В общем юзайте
$_POST["var"], $_GET["var"] и т.д.

sinet

Сказали же пропиши в php.ini
register_globals=on
рестартани Apache.
И будет тебе счастье...

laki

разработчики php не советуют использовать register_globals. лучше всего что-нибудь типа такого
$var = '';
if (isset($_GET['var'] $var = $_GET['var'];
if ($var == '' && isset($_POST['var'] $var = $_POST['var'];
как пример.

t332

ты не понял! у меня включен:
register_globals=on
но это не помогло, а вот когда я написал:
extract($HTTP_GET_VARS);
все заработало! но мне интересно, нельзя ли эту строчку пихнуть в настройки апача (или чего там еще что бы не писать в каждом скрипте...
конечно же можно оставить как есть, но действительно интересно!

sinet

Только что проверил на своём компе - всё нормально.
А ты какой php.ini смотришь?
PHP юзает php.ihi из каталога прописанного в PATH.

Petrovich_on_T3

Действительно, лучше register_globals отключить. А пользоваться функцией extract - смотри документацию или советы в этом треде. В названиях предопределённых переменных (массивов) кое-что изменилось с версии 4.1.0.

slonishka

в настройки вписать низя

stalker33rus10

Вместо $_GET и $_POST можно пользоваться $_REQUEST.
Так же еще нужны $_FILES, $_SESSION,$_SERVER (может что забыл?)
И вобще это не в первый раз вопрос.

sinet

может что забыл?

Забыл $_COOKIE, вместо которой тоже можно использовать $_REQUEST,
и $_ENV.

stalker33rus10

Угу... надо это дело в ФАК, тема очень популярная (не только на этом форуме всплывать будет постоянно.

Petrovich_on_T3

Надо разумно написать

stalker33rus10

Например, можно взять отсюда:
http://forum.vingrad.ru/index.php?showtopic=11308
Оставить комментарий
Имя или ник:
Комментарий: