[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос про авторизацию
Миша
Написал, всё работает, ошибок нет.

Встал другой вопрос, после ввода пароля и логина, пользователь отправляется на страницу обработчика, нужно отправить его обратно, с какой страницы он пришёл.

Я так понимаю , это можно сделать c помощью header, а как получить страницу, с которой пользователь отправил форму?

_____________
Принимаю заказы, писать в ЛС
Миша
Ап

_____________
Принимаю заказы, писать в ЛС
rooor
header('Location:'. $_SERVER['HTTP_REFERER']);
exit;


Цитата
'HTTP_REFERER'
    Адрес страницы (если есть), которая привела браузер пользователя на эту страницу. Этот заголовок устанавливается веб-браузером пользователя. Не все браузеры устанавливают его и некоторые в качестве дополнительной возможности позволяют изменять содержимое заголовка HTTP_REFERER. Одним словом, в самом деле ему нельзя доверять.

:)
ываапп
$_SERVER['HTTP_REFERER'] да, его надо проверять на валидность. если там содержится реальная страница твоего сайта, то возвращай юзера на этот адрес.
А если нет, то на стартовую страницу перенаправляй.
sergeiss
Цитата (Медведь @ 20.03.2015 - 23:13)
Встал другой вопрос, после ввода пароля и логина, пользователь отправляется на страницу обработчика, нужно отправить его обратно, с какой страницы он пришёл.

Есть еще вариант, более здравый по моему разумению. Обрабатывай на той же странице, где пользователь и был. И не будет никакого гемора с этими отправками туда-сюда.
Надо только отслеживать содержимое GET/POST массивов, чтобы понять, что тут происходит.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Миша
Цитата (sergeiss @ 21.03.2015 - 14:42)
Цитата (Медведь @ 20.03.2015 - 23:13)
Встал другой вопрос, после ввода пароля и логина, пользователь отправляется на страницу обработчика, нужно отправить его обратно, с какой страницы он пришёл.

Есть еще вариант, более здравый по моему разумению. Обрабатывай на той же странице, где пользователь и был. И не будет никакого гемора с этими отправками туда-сюда.
Надо только отслеживать содержимое GET/POST массивов, чтобы понять, что тут происходит.



Спасибо, всё получилось.

_____________
Принимаю заказы, писать в ЛС
Миша
Ещё такой вопрос, header на самого себя можно сделать?

Вот отправляет на главную:

header('Location: /');


_____________
Принимаю заказы, писать в ЛС
killer8080
Цитата (Медведь @ 21.03.2015 - 14:27)
Ещё такой вопрос, header на самого себя можно сделать?

да
Миша
Цитата (killer8080 @ 21.03.2015 - 16:36)
Цитата (Медведь @ 21.03.2015 - 14:27)
Ещё такой вопрос, header на самого себя можно сделать?

да

Как это сделать?

_____________
Принимаю заказы, писать в ЛС
Миша
Есть файл, далеко от корня, к нему инклюдится авторизация, после успешной авторизации пользователя нужно отправить через header на эту же страницу.

Можно так сделать? Если использовать / , то отправляет в корень сайта (на главную), $_SERVER['HTTP_REFERER'] пока использовать не буду.

У меня есть ещё варианты?

_____________
Принимаю заказы, писать в ЛС
sergeiss
Цитата (Медведь @ 21.03.2015 - 20:26)
У меня есть ещё варианты?

Цитата (Медведь @ 21.03.2015 - 15:27)
header на самого себя можно сделать?

Ну так ты и укажи этот файл, а не корень сайта smile.gif Подсказка: имя скрипта можно найти в массиве $_SERVER

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
stump
Ссылка на самого себя:
$_SERVER['PHP_SELF'];


Дабы не утруждать Медведя ссылками список того, что еще может $_SERVER

$_SERVER
'GATEWAY_INTERFACE'
Содержит используемую сервером версию спецификации CGI; к примеру'CGI/1.1'.
'SERVER_ADDR'
IP адрес сервера, на котором выполняется текущий скрипт.
'SERVER_NAME'
Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста.
'SERVER_SOFTWARE'
Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос.
'SERVER_PROTOCOL'
Имя и версия информационного протокола, через который была запрошена страница; к примеру 'HTTP/1.0';
'REQUEST_METHOD'
Какой метод был использован для запроса страницы; к примеру 'GET', 'HEAD', 'POST', 'PUT'.
Замечание:
PHP скрипт завершается после посылки заголовков (тоесть после того, как осуществляет любой вывод без буферизации вывода), если запрос был осуществлен методом HEAD.
'REQUEST_TIME'
Временная метка начала запроса. Доступна, начиная с PHP 5.1.0.
'REQUEST_TIME_FLOAT'
Временная метка начала запроса с точностью до микросекунд. Доступна, начиная с PHP 5.4.0.
'QUERY_STRING'
Строка запросов, если есть, с помощью которой была получена страница.
'DOCUMENT_ROOT'
Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера.
'HTTP_ACCEPT'
Содержимое заголовка Accept: из текущего запроса, если он есть.
'HTTP_ACCEPT_CHARSET'
Содержимое заголовка Accept-Charset: из текущего запроса, если он есть. Например: 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Содержимое заголовка Accept-Encoding: из текущего запроса, если он есть. Например: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Содержимое заголовка Accept-Language: из текущего запроса, если он есть. Например: 'en'.
'HTTP_CONNECTION'
Содержимое заголовка Connection: из текущего запроса, если он есть. Например: 'Keep-Alive'.
'HTTP_HOST'
Содержимое заголовка Host: из текущего запроса, если он есть.
'HTTP_REFERER'
Адрес страницы (если есть), которая привела браузер пользователя на эту страницу. Этот заголовок устанавливается веб-браузером пользователя. Не все браузеры устанавливают его и некоторые в качестве дополнительной возможности позволяют изменять содержимое заголовка HTTP_REFERER. Одним словом, в самом деле ему нельзя доверять.
'HTTP_USER_AGENT'
Содержимое заголовка User-Agent: из текущего запроса, если он есть. Эта строка содержит обозначение браузера, которым пользователь запросил данную страницу. Типичным примером является строка: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Среди прочего, вы можете использовать это значение с функцией get_browser() чтобы адаптировать вывод вашей страницы к возможностям браузера пользователя
'HTTPS'
Принимает непустое значение, если запрос был произведен через протокол HTTPS.
Замечание: Обратите внимание, что при использовании ISAPI с IIS значение будет off, если запрос не был произведен через протокол HTTPS.
'REMOTE_ADDR'
IP-адрес, с которого пользователь просматривает текущую страницу.
'REMOTE_HOST'
Удаленный хост, с которого пользователь просматривает текущую страницу. Обратный просмотр DNS базируется на значении переменной REMOTE_ADDR.
Замечание: Ваш веб-сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache вам необходимо присутствие директивы HostnameLookups On в файле httpd.conf, чтобы эта переменная создавалась. См. также gethostbyaddr().
'REMOTE_PORT'
Порт на удаленной машине, который используется для связи с веб-сервером.
'REMOTE_USER'
Аутентифицированный пользователь.
'REDIRECT_REMOTE_USER'
Аутентифицированный пользователь, если запрос был перенаправлен изнутри.
'SCRIPT_FILENAME'
Абсолютный путь к скрипту, который в данный момент исполняется.

Замечание:
Если скрипт запускается в коммандной строке (CLI), используя относительный путь, такой как file.php или ../file.php, переменная $_SERVER['SCRIPT_FILENAME'] будет содержать относительный путь, указанный пользователем.
'SERVER_ADMIN'
Эта переменная получает свое значение (для Apache) из директивы конфигурационного файла сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определенное для данного виртуального хоста.
'SERVER_PORT'
Порт на компьютере сервера, используемый веб-сервером для соединения. Для установок по умолчанию, значение будет '80'; используя SLL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP.
Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить UseCanonicalName = On и UseCanonicalPhysicalPort = On, иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.
'SERVER_SIGNATURE'
Строка, содержащая версию сервера и имя виртуального хоста, которые добавляются к генерируемым сервером страницам, если включено.
'PATH_TRANSLATED'
Filesystem- (not document root-) based path to the current script, after the server has done any virtual-to-real mapping.
Замечание: Начиная с PHP 4.3.2, переменная PATH_TRANSLATED больше не устанавливается неявно в Apache 2 SAPI, по сравнению с Apache версии 1, где она устанавливается в то же самое значение, что и переменная SCRIPT_FILENAME, когда она не используется Apache. Это изменение было сделано для соответствия спецификации CGI, где переменная PATH_TRANSLATED должна существовать только тогда, когда PATH_INFO определена. Пользователи Apache 2 могут использовать директиву AcceptPathInfo = On в конфигурационном файле httpd.conf для задания переменной PATH_INFO.
'SCRIPT_NAME'
Содержит путь, к текущему исполняемому скрипту. Это полезно для страниц, которые должны указывать на самих себя. Константа __FILE__ содержит полный путь и имя текущего (т.е. включаемого) файла.
'REQUEST_URI'
URI, который был передан для того, чтобы получить доступ к этой странице. Например, '/index.html'.
'PHP_AUTH_DIGEST'
При выполнении HTTP Digest аутентификации, этой переменной присваивается заголовок 'Authorization', который присылается клиентом (его необходимо потом использовать для соответствующей валидации).
'PHP_AUTH_USER'
Когда выполняется HTTP-аутентификация, этой переменной присваивается имя пользователя, предоставленное пользователем.
'PHP_AUTH_PW'
Когда выполняется HTTP-аутентификация, этой переменной присваивается пароль, предоставленный пользователем.
'AUTH_TYPE'
Когда выполняется HTTP-аутентификация, этой переменной присваивается тип аутентификации, который используется.
'PATH_INFO'
Содержит любой предоставленный пользователем путь, содержащийся после имени скрипта, но до строки запроса, если доступно. Например, если текущий скрипт запрошен по URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, то переменная $_SERVER['PATH_INFO'] будет содержать /some/stuff.
'ORIG_PATH_INFO'
Исходное значение переменной 'PATH_INFO' до начала обработки PHP.


_____________
Трус не играет в хокей
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.