Показать полную графическую версию : PHP. Как определить протокол?
Неожиданный ступор.
Пользую SSL. Мне необходимо выполнять одни действия, если ко мне залезли по http, и другие, если по https.
Вопрос. Как определить (на PHP) протокол, по которому залезли на сайт?
(учитывая то, что реффереры могут вырезаться)
Спасибо.
Prisoner
31-08-2005, 09:37
Можно поглядеть в сторону предопределенных переменных:
$_SERVER['SERVER_PORT'] - порт на серверной машине, используемый web-сервером для соединения. По умолчанию это '80'; использование SSL, к примеру, изменит это значение на то, которое вы определили для секретного порта HTTP.
$_SERVER['SERVER_PROTOCOL'] - имя и версия информационного протокола, по которому страница запрошена; например, 'HTTP/1.0';
Беда в том, что я не использовал никогда SSL и не знаю подводных камней - содержимое переменных может не быть адекватными (это кстати, априори и без использования SSL - специфика предопределенных серверных переменных)
pauluss
дурацкий вопрос: а по http и https идут по одному и тому же адресу? (адрес страницы)
marКонечно по одному. Почему вопрос дурацкий? Надо сделать так: если на сайт залезли по http, то это обычный посетитель, если по https - это зона клиента, его надо авторизовывать и давать доступ ко всяким вкусным материалам поддержки. Где-то я это видел, забыл где.
Пока я вижу только один способ - по порту сервера. Немного неудобно тем, что при переносе на другой хостинг порт может быть другим. Хотя это конечно не критично.
порт https обычно 443, хотя, конечно, ничто не мешает его поменять
Пожалуй, как уже сказал Prisoner, определять можно по SERVER_PORT (для апача), а для себя сделать какой-нибудь ini-файл с определенными переменными портов для http и https (на случай смены провайдера)
Или парсить SERVER_PROTOCOL - если лень заморачиваться с ini :)
Я SERVER_PORT смотрю.
SERVER_PROTOKOL почему-то показывает HTTP/1.1 и на http запрос и на https.
Prisoner
31-08-2005, 17:11
Потому так осторожно и говорил об адекватности переменных :).
Где-то я это видел, забыл где.
https://mts.ru
http://mts.ru
Сервер построен на IIS.
А как же там сертификаты?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.