$_SERVER и .т.п.

Don Arana

Новичок
$_SERVER и .т.п.

Здравствуйте! Вот возникла проблема с созданием хостинга для сайта на новой машине под Линухом.. до этого я ставил все нормально работало под Вин2000 сервером. Стоял апач 1.3.29.. ПХП 4.3.3.. и т.п.

но пришел человек, вроде разбирающийся в линухе.. и решили все это дело перенести на эту ОСь. Он поставил и вроде настроил апач 1.3.29+пхп4.3.4+MySQL. В обещм все ок.. но

перестали нормально работать скрипты с переменными $_SERVER, $_GET и т.п.

прописал в корне сайта
php_flag register_globals on

не помогает :((

вот примеры неработающих скриптов:

PHP:
$path = "inc/texts/";

if(!empty($_SERVER[QUERY_STRING])) 
{ 
if(file_exists($path.$_SERVER[QUERY_STRING])) 
{ 
include($path.$_SERVER[QUERY_STRING]); 
}else{ 
echo "Error!"; 
} 
}
else

include("inc/texts/users_index");
в папке /inc/texts/ лежат простые файлы (без расширения) с пхп скриптами на выборку из базы..

ну что не так? :((
плз хелп ламеру
 

Кром

Новичок
А что значит не работает? Нельзя ли точнее описать что не работает, какие ошибки выводит.
 

Falc

Новичок
Don Arana
И какую ты хочешь реакцию если у тебя $_SERVER[QUERY_STRING] = "server/"

Да и вообще твой скрипт позволяет получить доступ ко всем файлам к которым есть доступ у апача.
 

Don Arana

Новичок
$_SERVER[QUERY_STRING] = "server/"
выдается при запросе страницы http://сайт/users/server/

$_SERVER[QUERY_STRING] = "settings/"
выдается при запросе страницы http://сайт/users/settings/

в хтакссес прописано, чтобы users.php?server и т.п. преобразовывался в ЧПУ

-~{}~ 16.03.04 14:22:

я хочу реакцию вспомогательного характера по возможности :)
 

Falc

Новичок
Don Arana
Ты файл от директории отличить не можешь. а еще в хтакссес преобразовиваешь какие-то ЧПУ.
 

Don Arana

Новичок
Falc
спасибо и на этом. от тебя уже не жду помощи, может кто более спокойный мне подскажет?
 

nagash

Guest
$_SERVER[QUERY_STRING] --- плохо
$_SERVER['QUERY_STRING'] --- хорошо
 

confguru

ExAdmin
Команда форума
Don Arana

Забудь о квери стринг и сделай по нормальному вызов модулей
через
switch
case
 

Krisha

pain in the neck
Re: $_SERVER и .т.п.

прописал в корне сайта php_flag register_globals on
Зачем ?

в папке /inc/texts/ лежат простые файлы (без расширения) с пхп скриптами на выборку из базы
Ну и ? Ты понимаешь что ты делаешь ? Я нет, поясни мне плиз...
 

Don Arana

Новичок
>Зачем ?
пытался заставить работать скрипт, который раньше работал.

>Ну и ? Ты понимаешь что ты делаешь ? Я нет, поясни мне плиз...
наверное не понимаю..вот..
 

Krisha

pain in the neck
Автор оригинала: Don Arana
пытался заставить работать скрипт, который раньше работал.
А какая связь между register_globals и ГЛОБАЛЬНЫМИ переменными ? Ведь мы знаем, что если register_globals установлены в off нужно использовать ГЛОБАЛЬНЫЕ переменные, верно ?

наверное не понимаю..вот..
Так может быть давай разберемся что ты пытаешься сделать, а потом будем обсуждать пути решения ?
 

KES

Guest
Вот так я определяю какой файл мне инклудить:
PHP:
$tplRootDir = 'someDir/';
$bodyTpl= "index.tpl";
if (isset($_REQUEST['body']) && preg_match("#^([a-z0-9_])+$#is",$_REQUEST['body'])!=0 &&
    file_exists($tplRootDir. $_REQUEST['body'].".tpl")) $bodyTpl = $_REQUEST['body'].".tpl";

include ($tplRootDir . $bodyTpl);
Где
$tplRootDir - путь к каталогу, где лежат файлы, которые нужно включить
$bodyTpl - файл, который будет включаться, если ничего не задали в УРЛ.

Расшифровка if'a: ЕСЛИ передали переменную body И задали нормальное имя (буквы, цифры, знак "_") И существует файл, который хотят заинклудить, ТОГДА $bodyTpl = "<Имя файла>.tpl";

формат запроса:
index.php?body=fileToInclude

Структура каталогов:
PHP:
index.php         
someDir
    +someTpl.tpl
    +login.tpl
    +fileToInclude.tpl
    +......
    +i tak dalee ;)
to Admin:
а вместо "img..." должен стоять смайлик!!!

PS В идеале инициализация переменных $tplRootDir и $bodyTpl выноситься в файл конфигураций.
 

lucas

Guest
PHP:
if (isset($_REQUEST['body']) && is_string($_REQUEST['body']) && preg_match("#^([a-z0-9_])+$#is",$_REQUEST['body'])!=0 && 
    file_exists($tplRootDir. $_REQUEST['body'].".tpl")) $bodyTpl = $_REQUEST['body'].".tpl";
 

confguru

ExAdmin
Команда форума
KES

Ты то здесь причем...
Что ты пишешь кривые скрипты - это проблема твоих клиентов.. :)
 

KES

Guest
lucas:
Объясни плиз смысл вот этой проверки:
is_string($_REQUEST['body'])
?

admin
>Ты то здесь причем...
Don Arana инклудит файл, который был указан в УРЛ'е, вот я ему и предложил альтернативный вариант.

>Что ты пишешь кривые скрипты - это проблема твоих клиентов..
Я просто хотел обратить Ваше внимание на то, что если я обрамлю в тег [/PHP] оператор
echo ";)";

То на форум поститься не смайлик, а вот это:
<img src="images/smilies/wink.gif" border="0" alt="">

Например:
PHP:
echo ";)";
 
Сверху