PHP/MySQL | Проблема с куками
Тема закрыта by
CreepMatis
Причина: Решено. Благодарю 262110938 за помощь.:)
Причина: Решено. Благодарю 262110938 за помощь.:)
Как всегда, без проблем не обходится. Косячат куки что то. Вроде и записываются, правда вместо обновления - записывается кука с тем же названием(login, например), но с другим значением, и в итоге остаётся 2 куки с одним названием. Теперь ещё и для полного счастья перестала работать переменная $user(ну сами знаете, уже в традицию вошло использовать эту переменную). var_dump пишет "string(10) название таблицы".
Что делать?
Код проверки наличия кук:
Что делать?
Код проверки наличия кук:
if(isset($_COOKIE['login']) AND (isset($_COOKIE['password'])){
$login = htmlspecialchars($_COOKIE['login']);
$pass = htmlspecialchars($_COOKIE['password']);
$user = $db->prepare("SELECT * FROM `users` WHERE `login` = ? AND `password` = ?");
$user->execute([$login,$pass]);
$user = $user->fetchAll();
if(!isset($user['id'])){
unset($login);
unset($pass);
header("Location: /");
exit;
}
}
CreepMatis, я бы не стал хранить пароль и логин в сессии! А лишь индификатор вполне хватит!
262110938 (06.09.2015 в 20:34)
CreepMatis, я бы не стал хранить пароль и логин в сессии! А лишь индификатор вполне хватит!
CreepMatis, я бы не стал хранить пароль и логин в сессии! А лишь индификатор вполне хватит!
Можно и какой нибудь ключ туда пихнуть. Но пока с логином делаю. Есть мысли?
var_dump($_COOKIE) и что пишет?
262110938 (06.09.2015 в 20:39)
var_dump($_COOKIE) и что пишет?
var_dump($_COOKIE) и что пишет?
array(2) { ["PHPSESSID"]=> string(26) "bh1dgmcl5epro0v63pi2s8fkj4" ["login"]=> string(10) "asdq124124" }
password нету =)
262110938 (06.09.2015 в 20:41)
password нету =)
password нету =)
Проверил только что. Пароль с логином записался.
Найди где его сохраняют при авторизации может там 2 поле одинаковый логин место пароля =)
А то у тя код условие на проверку пароля существование! Поэтому и мимо проходит его!
if(isset($_COOKIE['login']) AND ;(isset($_COOKIE['password'])){
$login = htmlspecialchars($_COOKIE['login']);
$pass = htmlspecialchars($_COOKIE['password']);
//Тут достаточно лимит 1 и все
$user = $db->prepare("SELECT * FROM `users` WHERE `login` = ? AND `password` = ? LIMIT 1");
$user->execute([$login,$pass]);
//Тут не нужно возврашать целый массив $user->fetchAll(); заменяем на $user->fetch();
$user = $user->fetchAll();
if(!isset($user['id'])){
unset($login);
unset($pass);
header("Location: /");
exit;
}
}
$login = htmlspecialchars($_COOKIE['login']);
$pass = htmlspecialchars($_COOKIE['password']);
//Тут достаточно лимит 1 и все
$user = $db->prepare("SELECT * FROM `users` WHERE `login` = ? AND `password` = ? LIMIT 1");
$user->execute([$login,$pass]);
//Тут не нужно возврашать целый массив $user->fetchAll(); заменяем на $user->fetch();
$user = $user->fetchAll();
if(!isset($user['id'])){
unset($login);
unset($pass);
header("Location: /");
exit;
}
}