Ок) Можно тогда исходник для ознакомления?) На мыло: itan07@ya.ru (Добавление)
Ну или как лучше.. можно не на мыло а в личку, если там и правда, 30 строк.
Да все нормально. Юзер авторизуется - записывается его id в сессию, что позволяет ему перемещаться между скриптами "залогиненым". Потом, когда закрывается браузер, сессия на сервере автоматически удаляется. Именно поэтому при авторизации спрашивается "Запомнить меня" или нет. Если галочка есть, то к сессии добавляют куки. Если нету галочки, то работает просто одна сессия, без кук.
salim, в идентификатор сессии идет строка, которую можно подделать. Это называется SID. Он создается автоматически. Но можно задать свои значение для сессии, которые невозможно подделать без взлома сервера. Такие значения могут носить произвольные названия - id, control, abra_kadabrа и т.д. Поправьте, если ошибся.
О, класс. Спасибо. Люблю, чтобы все коротко и понятно в исходниках было (Добавление)
Хотя нет, в моем случае не подойдет, потому что там, в условии, проверяется не только COOKIE['id'] но и COOKIE['control'] и результатом функции может быть либо 1 либо 0.
Но я ваш способ запомнил, обязательно его использую где-нибудь.
if(check_cookie()){//Коннект к базе и сравниваем базу с куками
$row= base_query("SELECT login_string FROM isse_logins WHERE id = '".$_COOKIE['id']."'");
А функция check_cookie() проверяет куку: isset и is_numeric. Максимум, что можно сделать - подставить чужой id (тогда не совпадут id - hash) либо подставить десятичное число: 0.2 - но тоже будет ошибка потому что в базе такой записи нет - значит нет такого юзера, значит тоже выводится "Неверно" красными буквами.
Почему is_numeric? Потому что у меня is_int что-то не работает, как я предполагал.