Я авторизуюсь вот так:
$logged = false;
// если есть куки, проверяем их и авторизуем
if(isset($_COOKIE['user_id']) AND isset($_COOKIE['hid'])) {
... запрос в базу, если есть, то ... $logged = true;
}
То есть каждый раз идет запрос в базу, при каждом открытии страницы, что бы проверить статус юзера.
Чтобы убрать этот долбозапрос, решил таким образом аторизовывать.
Какие проблему могут возникнут у такого варианта авторизации?
Юзер логинится.
1. В указанной папке создается txt с именем хеша, к юзеру в базу идет этот хеш.
2. В файл записывается хеш, к которому добавляется какое-то значение, например 5, получается - 5хеш.
3. В файл записываются некоторые глобальные переменные.
4. Создается кука с этим хешем.
Юзер переходит на другую страницу:
1. Проверка, если есть файл с именем хеша и содержанием 5хеш, то статус logged = true
2. Если нет файла, или не совпадает содержание и хеш, или нет кука, то logged = false
То есть долбозапрос теперь и не нужен.
P.S. при бане файл удаляется, при каждом залогивании удаляется старый файл, создается новый с именем нового хеша