Вечные куки в PHP при входе в аккаунт

186
12 апреля 2019, 12:10

Подскажите, (только начал работать с PHP) как и куда записать код с запоминанием вечных куки при входе пользователя, чтобы учётная запись была активна до тех пор, пока пользователь не нажмёт кнопку выйти или не очистит куки через браузер самостоятельно. Прикрепляю страницу входа

<?php 
require 'db.php';
$data = $_POST;
if ( isset($data['do_login']) )
{
    $user = R::findOne('users', 'login = ?', array($data['login']));
    if ( $user )
    {
        //логин существует
        if ( password_verify($data['password'], $user->password) )
        {
            //если пароль совпадает, то нужно авторизовать пользователя
            $_SESSION['logged_user'] = $user;
            echo '<script type="text/javascript">location="index.php";</script>';
        }else
        {
            $errors[] = 'Логин или пароль не совпадают';
        }
    }else
    {
        $errors[] = 'Логин или пароль не совпадают';
    }
    if ( ! empty($errors) )
    {
        //выводим ошибки авторизации
        echo '<div id="errors" style="color:red; text-align:center;">' .array_shift($errors). '</div>';
    }
}
?>
Answer 1

Рекомендую Вам воспользоваться супер-глобальной переменной $_SESSION и сессиями в целом. Подробнее Вы можете прочитать здесь. Но сессии тоже не вычны, они сбрасываются при очистке файлов cookie, ведь сессия основана на этих файлах.

Answer 2

Есть вот такое решение.

Устанавливаете папку для сессии

Вставьте в начало нужного файла

ini_set('session.gc_maxlifetime', 3600*24*30);
ini_set('session.cookie_lifetime', 3600*24*30);

Каждый запуск данного файла эти значения будут переустанавливаться. Сессия будет вечной

READ ALSO
Для чего нужны события и слушатели событий в Laravel на примере интернет-магазина?

Для чего нужны события и слушатели событий в Laravel на примере интернет-магазина?

Использую laravel 56 для разработки интернет-магазина и как-то не приходилось пользоваться событиями и их слушателями

148
php распаковать бинарную строку без unpack

php распаковать бинарную строку без unpack

Дана бинарная строкаВ ней каждые 4 символа одно значение типа float в формате big-endian

157
Класс не найден

Класс не найден

Создаю сущность ORM, делаю все как описано тут и спотыкаюсь на первых шагахСоздаю класс по пути /home/bitrix/www/bitrix/modules/reaction/libs/reaction

157