Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос про require
 
 автор: Shumilin   (29.01.2006 в 21:55)   письмо автору
 
 

Подскажите, пожалуйста!
Существует такая ситуация. Один сценарий php с помощью функции require вызывает другой сценарий php.

$name="http://".$HTTP_HOST."/";  
$path=$REQUEST_URI;
$f=fopen("var.txt","r");
$id=fgets($f,100);
fclose($f);
require $name."index.php";

Так вот столкнулся с такой проблемой, что переменные $id и $path получаются неопределенные в index.php. Приходится последнюю строчку переписать так:

require $name."index.php?id=$id&path=$path";

   
 
 автор: cheops   (29.01.2006 в 23:54)   письмо автору
 
   для: Shumilin   (29.01.2006 в 21:55)
 

Их нельзя так передать - это синтаксис сетевого пути и срабатывает такая передача только при пропускании адреса через Web-сервер, когда скрипт осуществляет обращение к файловой системе, минуя сервер, необходимо вместо
require $name."index.php?id=$id&path=$path";

писать
$_GET['id'] = $id;
$_GET['path'] = $path;
require $name."index.php";

или ввобще ничего не писать а сразу использовать $id и $path.

   
 
 автор: Shumilin   (30.01.2006 в 19:51)   письмо автору
 
   для: cheops   (29.01.2006 в 23:54)
 

Спасибо.
У меня еще вопрос: А есть ли в php какая-нибудь глобальная переменная, котороую можно вставлять в путь к файлу, оставаясь на Web-сервере. Потому что файл index.php на самом деле лежит просто на несколько директорий выше. Количество директорий от index.php до вызывавшего его файла всегда разное,т.е. задача стоит жестко прописать путь к index.php, оставаясь на сервере.

   
 
 автор: cheops   (31.01.2006 в 02:49)   письмо автору
 
   для: Shumilin   (30.01.2006 в 19:51)
 

Да, можно выяснить и адрес сервера и отталкиваться от него. Подробности в статье Суперглобальный массив $_SERVER.

   
 
 автор: Shumilin   (01.02.2006 в 11:12)   письмо автору
 
   для: cheops   (31.01.2006 в 02:49)
 

Спасибо!
Если интересно:
require($_SERVER["DOCUMENT_ROOT"]."/index.php");

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования