Добрый день. Изучаю тему сессий и кук. Везде пишут, что для сессий нужно прописывать функцию Код (PHP): session_start(); В интернете есть такой код авторизации на сайте: Код (PHP): if (!isset($_SERVER['PHP_AUTH_USER'])) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } else { if (!get_magic_quotes_gpc()) { $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']); $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']); } $query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'"; $lst = @mysql_query($query); if (!$lst) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } if (mysql_num_rows($lst) == 0) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } $pass = @mysql_fetch_array($lst); if ($_SERVER['PHP_AUTH_PW']!= $pass['pass']) { Header ("WWW-Authenticate: Basic realm=\"Admin Page\""); Header ("HTTP/1.0 401 Unauthorized"); exit(); } } Если использовать подобный код, то я например захожу на сайт и вроде как сессии работают (т.е.авторизовавшись, до перезагрузки браузера я могу перемещаться по закрытой части). Вопрос- как в этом коде появилась сессия, тут же нет функции session_start()? Что почитать (в мануале и вообще)?
Будет хватать просто проверки идентификатора, зачем хранить пользовательский пароль, непонятно. Не агент не ип не проверяется, какой-то бред написан.
Ну если очень примитивно то каждый раз когда ты заходишь в новый документ стартует новая сессия. Включать в PHP её не нужно, она там по дефолту. то есть: sajt.ru/index.php - старт новой сесии sajt.ru/page.php - старт новой сесии sajt.ru/page2.php - старт новой сесии но если ты переходишь по страницам внутри PHP, сессия не меняется. то есть: sajt.ru/index.php - старт новой сесии sajt.ru/?view=page - сессия не изменилась sajt.ru/?view=page2 - сессия не изменилась Добавлено спустя 4 минуты 52 секунды: Авторизация для посетителя работает так: Вошёл на сайт стартует сесия. Если по логике PHP нужна регистрация, а в сесии нет твоего логина и пароля, значит ты не авторизован, и тебе выкидывает окно регистрации. Для этого не надо объявлять новую сессию. Ты и так в ней находишься. Добавлено спустя 5 минут 26 секунд: соответственно page.php и page2.php должны быть защищены от прямого доступа чтобы ты не смог подсоединится к ним минуя index.php
хм... http://en.wikipedia.org/wiki/Basic_access_authentication http://php.ru/manual/features.http-auth.html
Такое обычно для админок делают, а не для входа на сайт обычным пользователям, где ничего не надо предусматривать вовсе, а просто дать доступ админу, так как он знает как войти по его принципу. Хотя и это думаю не нужно. Хватит и обычного входа, главное защитить его от переборов и все, исчерпывающий вариант входа, к тому же можно сделать специальный ключ, верификации, привязки, таймеры, да что угодно, лишь бы работало красиво и безопасно. Проверяйте в любом случае ип адрес пользователя и агент. не доверяйте вообще никаким боком пользователям, он ваш враг.
Да, это код для входа в админку (взят из интернета)- вначале копировал, сейчас пытаюсь все осознавать и улучшать