Ошибка HTTP_SERVER_VARS

Тема в разделе "PHP", создана пользователем zsaz, 27 авг 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. zsaz

    zsaz

    Регистр.:
    6 авг 2007
    Сообщения:
    251
    Симпатии:
    11
    Вот лог апача, ругается на переменую.. че ему надо?? я так и не понял....

    [Fri Aug 01 00:32:25 2008] [error] [client 195.46.98.121] PHP Notice: Undefined variable: HTTP_SERVER_VARS in /home/www/www.site.ru/structure/facultets/kafedra.php on line 21, referer: Перейти по ссылке



    а вот 21 строчка в kafedra.php
    print get_path_name($HTTP_SERVER_VARS['PHP_SELF']);
     
  2. Jameson

    Jameson Читатель

    Заблокирован
    Регистр.:
    25 июн 2007
    Сообщения:
    406
    Симпатии:
    92
    $HTTP_SERVER_VARS довольно давно является устаревшей и в новых версиях PHP по умолчанию не используется.
    Замените на $_SERVER['PHP_SELF'].
     
  3. zsaz

    zsaz

    Регистр.:
    6 авг 2007
    Сообщения:
    251
    Симпатии:
    11
    а вобще че эта переменная делает вместе с PHP_SELF...
    А то мне сказали, что она и вправду отключена, но в коде-то она есть, может зачем-то нужна.. а то так бы снести ее нафиг
     
  4. Zeratul

    Zeratul Создатель

    Регистр.:
    17 мар 2006
    Сообщения:
    1.322
    Симпатии:
    3.855
    Вообще именно эта содержит путь до файла.

    Очень советую не использовать такие скрипты.. вообще :D
     
  5. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    $HTTP_SERVER_VARS['PHP_SELF'] и $_SERVER['PHP_SELF'] - одно и тоже, просто в старых версиях PHP был $HTTP_SERVER_VARS, а в новых сократили до $_SERVER. Старое имя оставили для обратной совместимости, но начиная с PHP6 $HTTP_ в языке уже не будет.

    $_SERVER['PHP_SELF'] - имя файла выполняемого скрипта относительно корня. То есть если выполняется скрипт по адресу _http://domain/test/test.php, то $_SERVER['PHP_SELF'] будет равен /test/test.php
     
  6. BlackByte

    BlackByte Прохожие

    Если не хочешь, что бы выводились PHP Notice
    достаточно перед переменной поставить "собачку" @

    Вот так:

    а вот 21 строчка в kafedra.php
    PHP:
    @print @get_path_name(@$HTTP_SERVER_VARS['PHP_SELF']);
     
  7. Jameson

    Jameson Читатель

    Заблокирован
    Регистр.:
    25 июн 2007
    Сообщения:
    406
    Симпатии:
    92
    Плохой совет :) Ошибки надо исправлять, а не зарывать.
    Хотя строчка сама по себе достаточно странная.
     
  8. zsaz

    zsaz

    Регистр.:
    6 авг 2007
    Сообщения:
    251
    Симпатии:
    11
    какая именно строчка странная???
    и @ нафига нужна??? если я удалю переменную это то же самое что и собаку поставил?? че-то немного не понял с собакой...
    а вобще если ее снести, то на производительность сайта это не скажется??? при условии, что данная переменная отключена??
     
  9. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    @ отключает вывод ошибки.
     
  10. BlackByte

    BlackByte Прохожие

    @ нужно что бы скрыть ошибки, которые складываются в error.log или выводятся на экран Notice обычно (если нет переменной к примеру)

    если удалить @ то на экран в случае возникновения ошибок будут показаны на экране

    это не то же самое если ты удалишь переменную
    если удалишь переменную то вероятно что то заглючит =)

    если переменная "отключен" как ты пишешь то можешь удалять эту строчку вместо с собачкой :-]
     
Статус темы:
Закрыта.