но, если я меняю либо одно либо другое, то сохраненные куки уже никуда не годяться. пробую переустановить их. в браузере они меняються, но при авторизации все равно старые? кто знает в чем дело???
//логин и пароль уже поменяны и я их достаю из БД $sql = "SELECT `email`, `pass` FROM `user` WHERE `id` = '".$id."'";
$row = query($sql); //самописная ф-ия которая фозвращает mysql_fetch_assoc($result)
$email = $row['email'];
$pass = $row['pass'];
$cook = md5($email.$pass); //делаю куки с логином+пароль
setcookie("cook",$cook); //устанавливаю куки
может, я что то не правильно делаю?прошу совета или подсказки.
а еще есть прблема с сессией
при смене логина или пароля, переменная $_SESSION['login'], $_SESSION['pass'] уже отличаються от настоящих так как я их поменял. потому я их переписываю на новые значения и все работает, но если обновить ту самую страницу 2 раза, то меня принимают за незареганого, а если пойти поклацать по ссылкам, то все норм?
может сделать редирект на какую-то левую страницу - типо бла-бла-бла вы успешно поменяли пароль и логин и ссылки по сайту или как. ниже код.
if(!empty($oldmail) && !empty($newmail)) //сравниваем старый и новый имейл
{
if($oldmail == $newmail) echo '<br>Старый и новый E-mail совпадают';
else
{
$sql = "SELECT `id` FROM `user` WHERE `email` = '".$oldmail."'";
$row = query($sql);
$id = $row['id'];
$sql = "UPDATE `user` SET `email` = '".$newmail."' WHERE `id` = '".$id."'";
query($sql);
$_SESSION['email'] = $newmail; //переустанавливаю переменную на новую
echo '<br>Вы успешно поменяли E-mail';
}
}
хух, вобщем как-то много написал, но надеюсь ясно. спасибо за внимание
Спустя 12 часов, 20 минут, 13 секунд (23.01.2011 - 13:01) alex12060 написал(а):
Чтобы удалить куки, надо либо вставить в них пустое значение, либо просто делать unset();
Это при выходе)
Что то тут совсем страшно(
У тебя две одинаковые переменные участвуют в 2 запросах.
Просто, я так делаю, когда кто-то что-то меняет, делаю выход и автологин.
Это при выходе)
$sql = "SELECT `id` FROM `user` WHERE `email` = '".$oldmail."'";
$row = query($sql);
$id = $row['id'];
$sql = "UPDATE `user` SET `email` = '".$newmail."' WHERE `id` = '".$id."'";
query($sql);
Что то тут совсем страшно(
У тебя две одинаковые переменные участвуют в 2 запросах.
Просто, я так делаю, когда кто-то что-то меняет, делаю выход и автологин.
Спустя 59 минут, 36 секунд (23.01.2011 - 14:01) quickxyan написал(а):
спасибо, вернусь буду пробовать с автологином)
Спустя 2 часа, 17 минут, 38 секунд (23.01.2011 - 16:18) quickxyan написал(а):
да, впринципе первый запрос можно вообще удалить так как id у меня есть в сессии.
_____________
печатаю со скоростью 320 минут в знак...
плюсуем карму не стесняемся