Добрый день.
Собственно где устанавливается переменная $DOCUMENT_ROOT?
После переноса сайта нет подключения к БД.
Подключение к бд написанно вот так:
include_once "$DOCUMENT_ROOT/auth.php";
Прошелся грепом, нашел вот это:
<?php
extract($_REQUEST);
extract($_SERVER);
extract($_SESSION);
?>
Что нужно сделать чтобы это заработало на другом сервере?
Mikhail Vasilyev, хороший вопрос.
Эти экстракты находятся в файле site.ru/lib/register_globals.php
Файл подключается в апаче вот так:
php_value auto_prepend_file "/data/www/s/site.ru/lib/register_globals.php"
Советую отказаться от таких скриптов или адаптировать под текущие реалии. $_SERVER['DOCUMENT_ROOT'] может устанавливаться в файле vhosts апача, например. А в чем проблема собственно? Если файлы одинаковы должно работать
Да, "новый" - это от версии 5.3, вышедшей в 2009-м, кажется, оно стало "deprecated", а с 5.4 вышедшей в 2012-м - было "removed". Но некоторые хостеры и дистрибутивы тянули 5.3 довольно долго ещё потом.
Mikhail Vasilyev, 3. У автора нет дебаггера
(можно же посмотреть трейс, проставить брейкпоинты по пути, отловить где оно появляется. И скорее всего где-то "в начале")
А грепом какой-нибудь extract($_SERVER) поискать - это еще додуматься надо.
sergeev_ev, ну вы это, отпишитесь - замена на $_SERVER['DOCUMENT_ROOT'] помогла? Другое дело, что если код настолько старый - то там ещё вагон таких капсовых переменных будет...
Stalker_RED, прошелся грепом, нашел вот это:
<?php
extract($_REQUEST);
extract($_SERVER);
extract($_SESSION);
?>
Что нужно сделать чтобы это заработало на другом сервере?
sergeev_ev, никто не мешает вам выполнить этот код на другом сервере, и работать дальше в стиле php4.
Ну или переписать "по нормальному", что бы это ни значило.
А лучше вообще отказаться от DOCUMENT_ROOT и адресовать относительно __FILE__ точки входа, к примеру.
Где гарантия, что никому не захочется положить ваш проект в какую-нибудь подпапку вирт.хоста и вызывать оттуда?