Глобальные переменные в РНР (непонятки)

Модератор: Модераторы разделов

Аватара пользователя
haRUNg
Сообщения: 295
Статус: мЁртвый 0дмин
ОС: openSUSE, Debian

Глобальные переменные в РНР

Сообщение haRUNg »

Добрый день,

В общем суть вопроса, имеем сервер под openSUSE 10.3, Apache, и PHP версии 5.2.5, при использовании в скрипте глобальной переменной $HTTP_REFERER / $_SERVER["HTTP_REFERER"] получаем ошибку: Notice: Undefined index: HTTP_REFERER in блаблабла, вопрос в том в какую сторону капать?
Если человек не заслуживает прощения при жизни, то его прощение необходимо ускорить... ©Йозеф Геббельс
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Глобальные переменные в РНР

Сообщение DaemonTux »

haRUNg писал(а):
20.02.2008 15:58
Добрый день,

В общем суть вопроса, имеем сервер под openSUSE 10.3, Apache, и PHP версии 5.2.5, при использовании в скрипте глобальной переменной $HTTP_REFERER / $_SERVER["HTTP_REFERER"] получаем ошибку: Notice: Undefined index: HTTP_REFERER in блаблабла, вопрос в том в какую сторону капать?

А в php.ini глобальные переменные включены?
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Глобальные переменные в РНР

Сообщение serzh-z »

haRUNg писал(а):
20.02.2008 15:58
глобальной переменной
Так, к слову - это суперглобальные переменные, что несколько другое нежели просто глобальные.
Спасибо сказали:
Аватара пользователя
komcumir
Сообщения: 273
ОС: Alt 5.0

Re: Глобальные переменные в РНР

Сообщение komcumir »

haRUNg писал(а):
20.02.2008 15:58
Добрый день,

В общем суть вопроса, имеем сервер под openSUSE 10.3, Apache, и PHP версии 5.2.5, при использовании в скрипте глобальной переменной $HTTP_REFERER / $_SERVER["HTTP_REFERER"] получаем ошибку: Notice: Undefined index: HTTP_REFERER in блаблабла, вопрос в том в какую сторону капать?


приведите кусок кода на которую ссылается ошибка
Спасибо сказали:
Аватара пользователя
haRUNg
Сообщения: 295
Статус: мЁртвый 0дмин
ОС: openSUSE, Debian

Re: Глобальные переменные в РНР

Сообщение haRUNg »

DaemonTux писал(а):
21.02.2008 16:51
А в php.ini глобальные переменные включены?


привожу содержимое php.ini:

Код:

[PHP] engine = On zend.ze1_compatibility_mode = Off short_open_tag = On asp_tags = On precision = 14 y2k_compliance = On output_buffering = 4096 zlib.output_compression = off implicit_flush = Off unserialize_callback_func= serialize_precision = 100 allow_call_time_pass_reference = Off safe_mode = Off safe_mode_gid = Off safe_mode_include_dir = safe_mode_exec_dir = safe_mode_allowed_env_vars = PHP_ safe_mode_protected_env_vars = GCONV_PATH,GETCONF_DIR,HOSTALIASES,LD_AUDIT,LD_DEBUG,LD_DEBUG_OUTPUT,LD_DYNAMIC_ WEAK,LD_LIBRARY_PATH,LD_ORIGIN_PATH,LD_PRELOAD,LD_PROFILE,LD_SHOW_AUXV,LD_USE_LO AD_BIAS,LOCALDOMAIN,LOCPATH,MALLOC_TRACE,NLSPATH,RESOLV_HOST_CONF,RES_OPTIONS,TM PDIR,TZDIR disable_functions = disable_classes = expose_php = On max_execution_time = 30; Maximum execution time of each script, in seconds max_input_time = 60; Maximum amount of time each script may spend parsing request data memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) error_reporting = E_ALL display_errors = On display_startup_errors = On log_errors = Off log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off html_errors = Off variables_order = "GPCS" register_globals = Off register_long_arrays = Off register_argc_argv = Off auto_globals_jit = On post_max_size = 8M magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off auto_prepend_file = auto_append_file = default_mimetype = "text/html" include_path = ".:/usr/share/php5:/usr/share/php5/PEAR" doc_root = user_dir = extension_dir = /usr/lib/php5/extensions enable_dl = Off file_uploads = On upload_tmp_dir = "/tmp" upload_max_filesize = 2M allow_url_fopen = On allow_url_include = Off default_socket_timeout = 60 [Date] [filter] [iconv] [sqlite] [xmlrpc] [Pcre] [Syslog] define_syslog_variables = Off [mail function] [SQL] sql.safe_mode = Off [ODBC] odbc.allow_persistent = Off odbc.check_persistent = On odbc.max_persistent = -1 odbc.max_links = -1 odbc.defaultlrl = 4096 odbc.defaultbinmode = 1 [MySQL] mysql.allow_persistent = Off mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off [MySQLi] mysqli.max_links = -1 mysqli.default_port = 3306 mysqli.default_socket = mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off [PostgresSQL] pgsql.allow_persistent = Off pgsql.auto_reset_persistent = Off pgsql.max_persistent = -1 pgsql.max_links = -1 pgsql.ignore_notice = 0 pgsql.log_notice = 0 [bcmath] bcmath.scale = 0 [browscap] [Session] session.save_handler = files session.save_path = "/var/lib/php5" session.use_cookies = 1 session.use_only_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = 1 session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 1000 session.gc_maxlifetime = 1440 session.bug_compat_42 = 0 session.bug_compat_warn = 1 session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = 1 session.hash_bits_per_character = 5 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" [Assertion] [mbstring] [gd] [exif] [Tidy] tidy.clean_output = Off [soap] soap.wsdl_cache_enabled=1 soap.wsdl_cache_dir="/tmp" soap.wsdl_cache_ttl=86400


KPETuH писал(а):
21.02.2008 18:24
приведите кусок кода на которую ссылается ошибка


например:

Код: Выделить всё

<?php
echo "$_SERVER[HTTP_REFERER]";
?>


ЗЫ. самое интересное что phpinfo(); выводит список супер глобальных переменных нормально.
Если человек не заслуживает прощения при жизни, то его прощение необходимо ускорить... ©Йозеф Геббельс
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Глобальные переменные в РНР

Сообщение serzh-z »

haRUNg писал(а):
20.02.2008 15:58
получаем ошибку: Notice: Undefined index: HTTP_REFERE
См. "var_dump($_SERVER)".
Спасибо сказали:
Аватара пользователя
komcumir
Сообщения: 273
ОС: Alt 5.0

Re: Глобальные переменные в РНР

Сообщение komcumir »

haRUNg писал(а):
22.02.2008 13:09

Код: Выделить всё

<?php
echo "$_SERVER[HTTP_REFERER]";
?>

а кавычках пробовали? $_SERVER['HTTP_REFERER']
Спасибо сказали:
Аватара пользователя
haRUNg
Сообщения: 295
Статус: мЁртвый 0дмин
ОС: openSUSE, Debian

Re: Глобальные переменные в РНР

Сообщение haRUNg »

serzh-z писал(а):
22.02.2008 13:26
См. "var_dump($_SERVER)".


а подробнее можно?

KPETuH писал(а):
22.02.2008 13:39
а кавычках пробовали? $_SERVER['HTTP_REFERER']


да, эффект тот-же ):
Если человек не заслуживает прощения при жизни, то его прощение необходимо ускорить... ©Йозеф Геббельс
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Глобальные переменные в РНР

Сообщение Voice »

$_SERVER['HTTP_REFERER'] содержит адрес страницы с которой мы попали на текущую (по ссылке, например).
Но поскольку на вашу страницу Вы ниоткуда не попадали, а просто ее открыли то его и нету.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
komcumir
Сообщения: 273
ОС: Alt 5.0

Re: Глобальные переменные в РНР

Сообщение komcumir »

тогда бы не было ошибки....


у меня как то такая проблема выскакивала но она была как раз из-за кавычек... а другую переменную использовать не пробовали? насколько я помню этане очень надежная... не все браузеры отдают реферер...
например $_SERVER['REQUEST_URI']
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Глобальные переменные в РНР

Сообщение serzh-z »

haRUNg писал(а):
22.02.2008 14:48
а подробнее можно?
Что значит подробнее?

Код: Выделить всё

<?php
    var_dump($_SERVER);
?>
В браузере открываем эту страницу, в выводе видим все индексы массива $_SERVER. Хотя, выше, как я понимаю, уже ответили.
Спасибо сказали:
Аватара пользователя
haRUNg
Сообщения: 295
Статус: мЁртвый 0дмин
ОС: openSUSE, Debian

Re: Глобальные переменные в РНР

Сообщение haRUNg »

serzh-z писал(а):
22.02.2008 17:25
Что значит подробнее?


сори, ступил немного...

KPETuH писал(а):
22.02.2008 17:24
у меня как то такая проблема выскакивала но она была как раз из-за кавычек... а другую переменную использовать не пробовали? насколько я помню этане очень надежная... не все браузеры отдают реферер...


_SERVER['SERVER_NAME'] _SERVER['REQUEST_URI'] нормально работают, браузер использую Firefox 2.0.0.11, либо Konqueror 3.5.8
Если человек не заслуживает прощения при жизни, то его прощение необходимо ускорить... ©Йозеф Геббельс
Спасибо сказали:
Аватара пользователя
haRUNg
Сообщения: 295
Статус: мЁртвый 0дмин
ОС: openSUSE, Debian

Re: Глобальные переменные в РНР

Сообщение haRUNg »

неужели я один с такой проблемой?
Если человек не заслуживает прощения при жизни, то его прощение необходимо ускорить... ©Йозеф Геббельс
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Глобальные переменные в РНР

Сообщение Voice »

haRUNg писал(а):
29.02.2008 17:14
неужели я один с такой проблемой?

Так в чем проблема?
По моему с $_SERVER['HTTP_REFERER'] ж все выяснили. :unsure:
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
haRUNg
Сообщения: 295
Статус: мЁртвый 0дмин
ОС: openSUSE, Debian

Re: Глобальные переменные в РНР

Сообщение haRUNg »

Voice писал(а):
29.02.2008 17:17
Так в чем проблема?
По моему с $_SERVER['HTTP_REFERER'] ж все выяснили. :unsure:


может я чего-то не заметил, но ведь так и не работает ):
Если человек не заслуживает прощения при жизни, то его прощение необходимо ускорить... ©Йозеф Геббельс
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Глобальные переменные в РНР

Сообщение Voice »

haRUNg писал(а):
29.02.2008 20:02
может я чего-то не заметил, но ведь так и не работает ):

Видомо, действительно, пропустили это:

Voice писал(а):
22.02.2008 17:09
$_SERVER['HTTP_REFERER'] содержит адрес страницы с которой мы попали на текущую (по ссылке, например).
Но поскольку на вашу страницу Вы ниоткуда не попадали, а просто ее открыли то его и нету.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
haRUNg
Сообщения: 295
Статус: мЁртвый 0дмин
ОС: openSUSE, Debian

Re: Глобальные переменные в РНР

Сообщение haRUNg »

Voice писал(а):
29.02.2008 20:55
Видомо, действительно, пропустили это:

Цитата(Voice @ Feb 22 2008, в 16:09) *
$_SERVER['HTTP_REFERER'] содержит адрес страницы с которой мы попали на текущую (по ссылке, например).
Но поскольку на вашу страницу Вы ниоткуда не попадали, а просто ее открыли то его и нету.


Если почитать чуть ниже:
KPETuH писал(а):
22.02.2008 17:24
тогда бы не было ошибки....

с чем я согласен (: , ибо на это страницу захожу именно по ссылке...
Если человек не заслуживает прощения при жизни, то его прощение необходимо ускорить... ©Йозеф Геббельс
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Глобальные переменные в РНР

Сообщение Voice »

Значит Вы хотите сказать что Вы заходите на страницу В с странцы А, и в ней не установленн $_SERVER['HTTP_REFERER']?
Странно... У меня все работает.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
haRUNg
Сообщения: 295
Статус: мЁртвый 0дмин
ОС: openSUSE, Debian

Re: Глобальные переменные в РНР

Сообщение haRUNg »

Voice писал(а):
29.02.2008 23:57
Значит Вы хотите сказать что Вы заходите на страницу В с странцы А, и в ней не установленн $_SERVER['HTTP_REFERER']?
Странно... У меня все работает.


да, со страницы В, я перехожу на страницу А, и на строке где находится супер глобальная переменная $_SERVER['HTTP_REFERER'] получаю Notice: Undefined index: HTTP_REFERER in .....

Apache/2.2.8 (Linux/SUSE 10.3) mod_ssl/2.2.8 OpenSSL/0.9.8e PHP/5.2.5 with Suhosin-Patch mod_perl/2.0.3 Perl/v5.8.8 Server
Если человек не заслуживает прощения при жизни, то его прощение необходимо ускорить... ©Йозеф Геббельс
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Глобальные переменные в РНР

Сообщение Voice »

Ану создайте два файла:

referer_from.php

Код: Выделить всё

<html>
<head>
</head>

<body>

<a href="referer.php">click me</a>

</body>
</html>


referer.php

Код: Выделить всё

<?
print_r($_SERVER);
?>


Откройте в браузере referer_from.php и перейдите по ссылке. Потом покажите вывод в браузер.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали: