НА разных сайтах скрипт работает по-разному. помогите разобраться

Ashgo

Новичок
НА разных сайтах скрипт работает по-разному. помогите разобраться

Cервер под управлением CentOS, register_globals=On, Apache 1.3.34 (Unix)

Скрипт тестировался на двух разных сайтах, расположеных на одном и том же сервере. Первый сайт - основной, второй - тестовый, на нем в качестве эксперимента воссоздана структура папок и файлов, как и на первом. Скрипт без изменений, один и тот же на обоих сайтах работает по-разному.

с ПХП дружу недавно, поэтому возможно вы посоветуете более оптимальное решение проблемы.

Сайт очень большой, насчитывает несколько сотен страниц. По-хорошему перегнать все на MySQL, но пока это не представляется возможным.
Вследствие того, что сайт большой, очень сильно разрослась менюшка. Было принято решение разбить ее и выводить лишь меню соответствующего странице раздела + общее меню по разделам.
Сайт основан на файлах с текстом и подключающемся к нему файлах дизайна по принципу:

PHP:
<? 
include("/_design/_header.php");  // Подключаем шапку
?> 
текст 
<? 
include("/_design/_footer.php");  // Подключаем хвост
?>

Структура:
/_design/_header.php
/_design/_footer.php
/rs/index.php
/rs/file.php
/index.php

_header.php содержит код:
PHP:
$path_parts = pathinfo($PHP_SELF); // Определяем текущее местоположение.
$CurPath=$path_parts['dirname']; // выделяем только путь
$expl=explode("/", $CurPath); // Разбиваем путь слешами
Далее на основе $expl вывожу ту или иную менюшку в зависимости от папки, в которой находится файл.

Скрипт рабочий. По крайней мере на тестовом сервере + на Денвере работал прекрасно.
При загрузке на сайт1 $CurPath содержит информацию не о текущем файле, а о файле _header.php т.е. при вызове из /rs/file.php выдает не /rs, a /_design

Как с этим бороться?
 

Ashgo

Новичок
"Файловое имя текущего исполняемого сценария PHP относительно корневого каталога веб-сервера"

Повторюсь. на другом сайте этот скрипт работает.
Т.е. сначала инклудится, а потом выполняется $PHP_SELF, относительно запрошенного файла (/rs/file.php).

Однако в данном случае $PHP_SELF содержит информацию о файле, в котром сам прописана.
 

jonjonson

Охренеть
"Файловое имя текущего исполняемого сценария PHP относительно корневого каталога веб-сервера"
и
Однако в данном случае $PHP_SELF содержит информацию о файле, в котром сам прописана.
Остальное от лукавого. Тем более не показано полного кода (только не постите его сюда).
И научитесь разбираться в коде.
~ Обновлено.
В любом случае нужно не "бороться" с правильной работой, а использовать её.
Например, указанный вами код должен выполняться не в скрипте заголовка а в скрипте его вызывающем.

P.S. И ради бога избавьтесь от глобалс он... Оно вам хорошую службу не сослужит.
 

Ashgo

Новичок
Дальше все просто и никак на результат не влияет... но... ведь работает же (почему-то?!) на втором сайте. Хотелось бы первый заставить работать. От лакавого или еще от кого...

В результате "исполняемый сценарий" на втором сайте /rs/file.php, a на первом /_design/_header.php
Ничего кроме как почесать затылок не остается.
Какие еще могут быть варианты решения проблемы?
 

jonjonson

Охренеть
Если вы считаете, что ошибочный вариант лучше правильного, то остальное ваша личная проблема.

Если же хотите разобраться в причинах того и другого результата, то кроме вас этого никто не сделает

http://phpfaq.ru/debug
 

Ashgo

Новичок
В данном случае действительно считаю.

Хочу, на будущее, за ссылку спасибо.
 
Сверху