#php #session-cookies
#php #сессия-файлы cookie
Вопрос:
Я видел некоторые сайты социальных сетей, если у вас есть учетная запись пользователя, и когда вы открываете браузер и вводите URL-адрес, вы будете напрямую входить в систему без ввода имени пользователя и пароля, даже если вы закроете компьютер и перезапустите браузер, вы все равно можете автоматически войти в систему, которая имеет другую форму, прежде чемя думаю, что это включает не только сеансовый файл cookie, как показано ниже
setcookie(session_name(), '', time()-2592000, '/');
но может быть сложнее, чем это. предположим, если я использую php, кто-нибудь может сказать мне, как реализовать эту функцию, я предполагаю, что это делается на стороне сервера, извините, если я не сделал четкого описания.
Комментарии:
1. Как насчет этого: evolt.org/node/60265 ?
2. спасибо, это хороший учебник, этот веб-сайт stackoverflow тоже сделал то же самое? потому что каждый раз, когда я вхожу в систему, он автоматически заставляет меня входить в систему все время, даже если я перезагружаю свой компьютер
3. Да, это называется cookie. Я советую вам прочитать о файлах cookie и сеансах, если вы хотите узнать, как управлять пользователями на ваших веб-сайтах.
Ответ №1:
Что я делаю, так это сохраняю идентификатор пользователя и / или имя пользователя и хэш входа, md5 (userId имя пользователя пароль) в виде файлов cookie.
При следующем посещении возьмите идентификатор из файла cookie и проверьте хэш входа в систему по той же формуле, по которой он был сгенерирован. Если то же самое, войдите в систему автоматически.
Глобальный
$randomSeperator = '!~!';
Первый запуск…
$hash = md5($id . $randomSeperator . $username);
setCookie('id', $id);
setCookie('username', $username);
setCookie('hash', $hash);
Второй запуск…
$id/$username/$hash = $_COOKIE[][][] .... // Get all 3 cookies
if($hash == md5($id . $randomSeperator . $username) ){
// Do Autologin
}
Комментарии:
1. большое спасибо, но я не очень хорошо понимаю, не могли бы вы показать мне какой-нибудь конкретный код, чтобы я мог получить полную картину, спасибо.
2. На первый взгляд мне кажется, что это небезопасно.