Возможно, наилучший подход, как было предложено и то, что делают большинство сторонних приложений, - это создать таблицу базы данных "user_sessions" со следующими полями:
session_id (var_char)
user_id (int)
ip_address (var_char)
last_logged_in (unix timestamp)
Затем использовать cookie для храненияхэш md5, что вам нравится, возможно:
md5($username.$ip); //since md5 has a lot of reverse look ups now you should use a number of fields to validate. You could use a different crypto function to make it more difficult to crack, but md5 is the simplest version available in all php versions.
РЕДАКТИРОВАТЬ: Затем вы сравните сохраненный хеш из cookie с базой данных session_id , чтобы увидеть, если они уже вошли в систему.Причиной объединения пары полей в функции md5 является создание менее «угадываемого» формата хеширования.Это снижает вероятность того, что кто-то сможет редактировать cookie-файл и войти в систему под именем другого пользователя.
Это может быть сделано для всех пользователей (таким образом вы можете отслеживать, кто находится в сети) и просто установить «постоянный» вход в систему.переменная в куки.например.
p_login=true || p_login=false
Таким образом, вы будете знать, нужно ли выполнять автоматический или принудительный вход в систему.
примечание: вы можете посмотреть на http://www.openwall.com/articles/PHP-Users-Passwords по-другомухэшировать пароли, session_ids и пользователей.