$SCRIPT_NAME $PHP_SELF и пр.

-faqer-

Я только учусь
$SCRIPT_NAME $PHP_SELF и пр.

Задача такая необходимо, чтоб скрипт вне зависимости от того как называется файл мог ссылаться сам на себя
Т.к. $SCRIPT_NAME это переменная апач, то ее значение зависит от того как установлен PHP
Сейчас пишу прогу там использую $PHP_SELF.
Вопорс в следующем, что мне использовать для указанных выше целей, чтоб независимо от оси и того как скомпилен ПХП скрипт мог ссылаться сам на себя
 

wanderer

PHP - rulez!...
имхо он и так будет ссылатьсь на себя через $PHP_SELF... внезависимомти от чего-либо, так как это перенная самого РНР (имхо, не уверен)
 

Doomer

Guest
Если это переменная PHP, то почему именно HTTP_SERVER_VARS['PHP_SELF']?
 

Phoenix

Guest
действительно , хотелось бы услышать ответ!
 

Doomer

Guest
Проведем эксперимент
создадим .htaccess и напишем в нем Options Multiviews
создадим файл test.php и напишем в нем <? print $PHP_SELF?>
запустим в браузере (например http://design.na-svyazi.ru/test/1) и получим "/test/1". Значит переменную $PHP_SELF создает сервер.
 

Unregistered

Guest
Тем не менее, если ПХП запущен как CGI, то $PHP_SELF укажет на C:/php/php.exe
То бишь надо определять еще в каком режиме работает ПХП...
 

-faqer-

Я только учусь
Как тогда писать, допустим, свободно распространяемый скрипт, который бы работал у всех, кто его использует
Отказаться вобще от ссылки самого на себя таким образом
И ввести в подключаемом сонфигурационном файле переменную, допустим, $mainscript, которая устанавливается при инсталяции
 

gRigoriy

Новичок
-faqer-, а ты давно на рнр програмиш?
Знаешь в рнр есть такая важня функция как phpinfo() :)
Если бы ты ее написал то увидел кучу вариантов решения твоей проблеммы.

Например _SERVER["request_uri"], например ...
 

Rynor

stay hungry
PHP:
function disk_script(){
//07/20/02
//get script name from $_SERVER

global $_SERVER, $main;

//step 1 - cut off left part of path to last slash /
$s = strrchr($_SERVER["SCRIPT_NAME"], "/");

//step 2 - cut off extension
$s = substr ($s, 1, -(strlen($main["disk_ext"])));
return $s;
}
работает на апаче и иис, в винде и линуксе
расширение отрубаю нафиг оно мне
 

-faqer-

Я только учусь
2 gRigoriy
Очень действенный метод, сразу указать человеку, что он чайник, а потом линиво объяснять
Программлю я недавно, меньше 2 месяцев, а пхпинфо() действительно очччень важня
Только вот мне не вдомек, почему из 13 (покрайней мере у меня их 13) переменных, которые выводят имя исполняемого скрипта, ты выбрал именно _SERVER["request_uri"]
Так же мне невдомек откуда гарантия что как, допустим и $PHP_SELF, их значение не будет зависть от того каким образом установлен PHP или от того какой сервак стоит.

2 Rynor
Интересно сейчас буду проверять
Но это получается, что при каждом исполнении сценария будут резаться строки
Тормозов это не добавит
Я ничего не утверждаю, просто интересуюсь
 

RomikChef

Guest
Факер, все используют PHP_SELF и не выёживаются.

РНР ДОЛЖЕН стоять как модуль и под унихом. Остальное все бред, нищета и кривые руки.

А ты действительно хочешь писать свободно распространяемый скрипт, не освоив РНР даже и два месяца? или так - для красного словца?
 

-faqer-

Я только учусь
2 gRigoriy & Rynor
Слегка разобрался
Похоже прийдется скрестить ваши предложения
$_SERVER["REQUEST_URI"]
вроде не должна ни отчего зависеть
А вот $_SERVER["SCRIPT_NAME"] зависеит от тога, как устновлен апач, как модуль или как цгайка
м воем случае $_SERVER["REQUEST_URI"] выводит /qqq/file.php,
а $_SERVER["SCRIPT_NAME"] выводит /_php/php.exe, так что хоть и
работает на апаче и иис, в винде и линуксе
, но вмоем случае не фурычит
Или я все-таки в кфг файл просто положу название файла
бо больно все это мутно
2 RomikChef
http://phpclub.net/talk/forumdisplay.php?s=&forumid=14
не у одного стоит как цыгыайка
А ты действительно хочешь писать свободно распространяемый скрипт, не освоив РНР даже и два месяца? или так - для красного словца?
Именно поэтому и хочу
Осваивал бы 4 месяца, уже платные б, наверное, писал бы:D
 

gRigoriy

Новичок
ты выбрал именно _SERVER["request_uri"]
Во первых написал я "например" это значит что есть еще несколько вариантов. И просто я ее использую. На FreeBSD и Win Me все работает нормально!
 

DiMA

php.spb.ru
Команда форума
в начале проги extract($HTTP_SERVER_VARS) и вся проблема
 

Rynor

stay hungry
2 fager:
мде, если как CGI под виндой то не работает
но это не мой подход - CGI под виндой ;)
 

-faqer-

Я только учусь
4 DiMA
Будем порбовать
4 Rynor
Да вобщем-то мне тоже не особенно нравится, но это под виндой и на локальной машине, просто на моем типа крутом линуховом сервере винт посыпался, вот и приходится под виндой
 

voodoo

Новичок
Автор оригинала: RomikChef
Факер, все используют PHP_SELF и не выёживаются.
ну это до поры-до времени. Хотя потом выеживаться уже не получится.

РНР ДОЛЖЕН стоять как модуль и под унихом. Остальное все бред, нищета и кривые руки.
гы-гы :)
"--может ты еще и продюсером станешь?
--может и стану..." (с) Брат 2.
RomikChef, расскажи Zendу че им писать надо, а?
 

Сытник

Guest
Re: $SCRIPT_NAME $PHP_SELF и пр.

Автор оригинала: -faqer-
Задача такая необходимо, чтоб скрипт вне зависимости от того как называется файл мог ссылаться сам на себя
Т.к. $SCRIPT_NAME это переменная апач, то ее значение зависит от того как установлен PHP
Сейчас пишу прогу там использую $PHP_SELF.
Вопорс в следующем, что мне использовать для указанных выше целей, чтоб независимо от оси и того как скомпилен ПХП скрипт мог ссылаться сам на себя
если ты про FORM, то более чем достаточно

<FORM action="">

</FORM>

если про header ("Location:"), то можно

header ("Location: ?"), не помню случая когда знак вопроса чему-нить мешал...

Все остальное - от лукавого...
 

RomikChef

Guest
Вуду, если со временем у меня возникнут проблемы, я не стану ломать голову, а просто в перепенд вставлю строчку, которая присваивает $PHP_SELF нужное значение. Затрачу на это секунд 30 и забуду. Если кто хочет день потратить на выяснение этого вопроса - флаг в руки.

А насчет зенда не пояснишь? Я человек простой, сложнее гостевой ничего не писал, про зенд только понаслышке знаю.
 

Rynor

stay hungry
php под винду это не бред нищета все такое
это переходный период от ASP к Java :)
 
Сверху