Php, пользование сессией

153
13 октября 2017, 16:51

Недавно начала учить php и задалась вопросом: как с помощью самой сессии (пока что без SQL) сделать так, что при одноразовом правильном вводе пароля он больше не спрашивался? Т.е. при переходе на ссылку сайта не открывалась страница входа, а сразу контент. Как, например, в ВК или другим соц. сетях.

Answer 1

Если очень упростить:

<?php
session_start();
if (isset($_POST['password']) && password_verify($_POST['password'], $hash)) {
    // пароль проверен - отметим это в сессии
    $_SESSION['password_ok'] = true;
}
if (empty($_SESSION['password_ok'])) {
    // новый пользователь - показываем форму запроса пароля
} else {
    // пароль был проверен успешно - показываем контент
}

Хеш пароля вы храните в БД или в файле, получаете с помощью функции password_hash.

Answer 2

После успешной авторизации записывай в сессию успех авторизации.

Когда пользователь обращается к твоей странице ты смотришь в сессии успех авторизации. Если есть положительный - то ты грузишь ему страницу с контентом, иначе - ты грузишь ему страницу с авторизацией.

Это если на котах.

READ ALSO
Как поменять домашнюю страницу Yii2 [дубликат]

Как поменять домашнюю страницу Yii2 [дубликат]

На данный вопрос уже ответили:

163
php и cron не выполняется скрипт

php и cron не выполняется скрипт

в crontab записал такую команду, вместо исполнения этого скрипта он просто открывает файл, подскажите пожалуйста как запустить этот скрипт

137
PHP: throw new Exception после Fatal Error

PHP: throw new Exception после Fatal Error

Пишу свой класс-обработчик ошибок, в конструкторе реализую следующие обработчики:

191
Как спрятать ряды таблицы?

Как спрятать ряды таблицы?

Добрый день профессионалыКак спрятать таблицу, кликая по "шапке таблицы"? Сейчас я это делаю через Javascript, а в тэг ряда таблицы вставляю

163