Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает $_SERVER['REQUEST_URI'], почему не могу понять. 
V
    Опции темы
proger
Дата 15.6.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 10.10.2004

Репутация: нет
Всего: 1



Здрасти, на апачи функция $_SERVER['REQUEST_URI'] отрабатывает, а на IIS почемуто не работает, результат на $_SERVER['REQUEST_URI'] на IIS равен пустоте.
Почему?
Спасибо. 
PM MAIL   Вверх
vasac
Дата 15.6.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Потому что $_SERVER — переменные сервера Apache. А что в IIS, видимо, можно прочитать в доке по IIS. 

ЗЫ. И это не функция м/у прочим. 

Это сообщение отредактировал(а) vasac - 15.6.2006, 13:12
PM WWW   Вверх
MeFistofeL
Дата 15.6.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.6.2006

Репутация: -3
Всего: нет



Попробуй написать 
Код
$HTTP_SERVER_VARS["REQUEST_URL"]
 может поможет. 
PM MAIL   Вверх
Mal Hack
Дата 15.6.2006, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



MeFistofeL, эта запись устарела, использовать ее не грамотно.

proger, print_r( $_ENV );
Вроде так массив называется. 
PM ICQ   Вверх
vasac
Дата 16.6.2006, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



А еще 
Код

print_r( $GLOBALS );

и сразу видно, какие массивы есть и что содержат 
PM WWW   Вверх
MeFistofeL
Дата 16.6.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.6.2006

Репутация: -3
Всего: нет



Ну так вопрос состоял в том, что $_SERVER["REQUEST_URI"] работает в Apache но не фурычет а IIS smile 
PM MAIL   Вверх
AztEK
Дата 16.6.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18



А спасает ли функция getenv() от проблем с совместимостью?

Добавлено @ 13:22 
В мануале просто написано
Цитата
string getenv ( string varname )

Returns the value of the environment variable varname , or FALSE on an error.
 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
vasac
Дата 16.6.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Цитата

Ну так вопрос состоял в том, что $_SERVER["REQUEST_URI"] работает в Apache но не фурычет а IIS

Дак вот, распечатать структуру переменных и посмотреть, есть ли там ему адекватная замена. 
PM WWW   Вверх
MeFistofeL
Дата 16.6.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.6.2006

Репутация: -3
Всего: нет



Цитата

А что в IIS, видимо, можно прочитать в доке по IIS. 

В доке написанно : 
Цитата

Server variables: $_SERVER
Замечание: Введено в 4.1.0. В более ранних версиях, используйте $HTTP_SERVER_VARS. 

Теперь вопрос : proger какая у тебя версия php сервера ?

Добавлено @ 16:50 
А вот теперь насчёт того, чтобы 
Цитата
посмотреть, есть ли там ему адекватная замена
.
В доке написанно REQUEST_URI :
URI, который был предоставлен для того, чтобы обратиться к этой странице; например, '/index.html'.
Ну на сколько я понял URI страницы на которой мы щас находимся, или URI страницы-родителя с которой мы перешли на данную страницу? 
PM MAIL   Вверх
-=Ustas=-
Дата 16.6.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(MeFistofeL @  16.6.2006,  16:45 Найти цитируемый пост)
URI страницы на которой мы щас находимся

 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
[xoodo]
Дата 16.6.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 9.3.2003

Репутация: 1
Всего: 4



На IIS прекрасно работает $_SERVER['REQUEST_URI']. $_ENV у меня пустой, $GLOBALS -- ансет. $_SERVER -- это переменная сервера вообще, а не Апача.

Добавлено @ 17:22 
Код в студию, где не работает!

Добавлено @ 17:24 
Да, вместе с версией ПХП укажи еще версию IIS. Мало ли... Хотя вряд ли у тебя четвертая или ниже. 
PM   Вверх
xolod
Дата 16.6.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 24.5.2005
Где: Когда: Что:

Репутация: 4
Всего: 13



Если IIS 5.1 и Windows XP — то вполне. В такой связке $_SERVER['REQUEST_URI'] пусто.

Вариант решения:
Код

if(!isset($_SERVER['REQUEST_URI'])) {
  $arr = explode("/", $_SERVER['PHP_SELF']);
  $_SERVER['REQUEST_URI'] = "/" . $arr[count($arr)-1];
  if ($_SERVER['argv'][0]!="")
   $_SERVER['REQUEST_URI'] .= "?" . $_SERVER['argv'][0];
}

Вставить код в начало, в переменной $_SERVER['REQUEST_URI'] будет то, что хочется.

Это сообщение отредактировал(а) xolod - 16.6.2006, 17:31
PM MAIL   Вверх
MeFistofeL
Дата 16.6.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.6.2006

Репутация: -3
Всего: нет



Ну если URI страницы на которой мы щас находимся то чтобы узнать полный путь мона заюзать
Код

$_SERVER["PATH_TRANSLATED"]

а если нада тока имя то:
Код

$_SERVER["SCRIPT_NAME"]

 
PM MAIL   Вверх
MeFistofeL
Дата 16.6.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 14.6.2006

Репутация: -3
Всего: нет



Насчёт $_SERVER["SCRIPT_NAME"]  небольшое уточнение : оно работает также как и $PHP_SELF возвращает относительный путь и имя страницы, а вот $_SERVER["PATH_TRANSLATED"] возвращает полный путь типа 'c:\\inetpub\\wwwroot\\test\\test1.php' smile 
PM MAIL   Вверх
[xoodo]
Дата 16.6.2006, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 9.3.2003

Репутация: 1
Всего: 4



Цитата(xolod @ 16.6.2006,  17:29)
Если IIS 5.1 и Windows XP — то вполне. В такой связке $_SERVER['REQUEST_URI'] пусто.

А версия Винды вообще имеет значение? Каким и какого, интересно? Я думал, токмо версия сервера. У меня Win SBS 2000 и вышеупомянутый IIS 5.1, повторюсь -- все ок. 
PM   Вверх
xolod
Дата 16.6.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 24.5.2005
Где: Когда: Что:

Репутация: 4
Всего: 13



[xoodo], к сожалению имеет. IIS особо тесно интегрирован с API и системными службами самой ОС, чего нельзя сказать о кроссплатформенном Apache. Ладно, не будем засорять раздел не по теме.
В целом решение уже дано, и не только мной. А автор что-то затих.
PM MAIL   Вверх
proger
Дата 18.6.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 10.10.2004

Репутация: нет
Всего: 1



У меня верси пхп 5.* 
PM MAIL   Вверх
proger
Дата 19.6.2006, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 10.10.2004

Репутация: нет
Всего: 1



Всем большое спасибо, вот отличное ваше решение:
Код

if(!isset($_SERVER['REQUEST_URI'])) {
  $arr = explode("/", $_SERVER['PHP_SELF']);
  $_SERVER['REQUEST_URI'] = "/" . $arr[count($arr)-1];
  if ($_SERVER['argv'][0]!="")
   $_SERVER['REQUEST_URI'] .= "?" . $_SERVER['argv'][0];
}
 
PM MAIL   Вверх
nextzi0
Дата 25.11.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.5.2008
Где: о. Корсика

Репутация: нет
Всего: нет



sorry =)

Это сообщение отредактировал(а) nextzi0 - 25.11.2009, 15:53
--------------------
Не бойся начинать что-то новое, помни, что ковчег построили любители - профессионалы построили "Титаник"
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0882 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.