Запрос к таблице (которая не факт, что полупустая) всегда будет дольше обращения к переменной в сессии, которая так и так поднимается на каждом запросе.к базе полюбому коннектиться. один запрос по PK к полупустой таблице выполняется моментально.
Запрос к таблице (которая не факт, что полупустая) всегда будет дольше обращения к переменной в сессии, которая так и так поднимается на каждом запросе.к базе полюбому коннектиться. один запрос по PK к полупустой таблице выполняется моментально.
да ну, с чего бы это вдруг?которая так и так поднимается на каждом запросе
зачем его отслеживать? я не понял вопросаtriumvirat: а как вы пользователя иначе отслеживаете, которому пароль поменяли?
$this->getResponse()->setcookie('auth_id', $user->getId(), $time, '/');
$this->getResponse()->setcookie('auth_hash', md5($user->getLogin() . $user->getPassword().
Base_Registry::getInstance()->config['user_cookie_salt']) , $time , '/');
а как надо?Как у вас всё сложно %)
на лицо применение базы ради ее примененияЯ не вижу причин отказываться от сессий.
в адресной строке ничего плохого не висит: (script.php?result=passerror)Ну и зачем сообщение в стиле "Старый пароль введён неверно" будет висеть в адресной строке?
if ($_GET('result')=='passerror') echo 'Старый пароль введён неверно';
Это говнокод. Не надо засарять разными GET-параметрами сценарий. Нотификейшен чрезвычайно удобно написать, написать, на какой странице он должен быть показан и все - больше никакой головной боли. А с твои вариантом надо делать кучу if-ов. Ну и про уникальные данные я уже сказал выше...в адресной строке ничего плохого не висит: (script.php?result=passerror)
в script.php:
PHP:if ($_GET('result')=='passerror') echo 'Старый пароль введён неверно';
в контексте этой задачи - я описал. хранение записи до востребования.До сих пор не вижу ни одной причины (как и аргумента) против этого встроенного дешёвого и быстрого решения.
Основная проблема этого кода в том, что после рефреша страницы сообщение будет показано снова, не зависимо от того, изменились ли условия или нет.в адресной строке ничего плохого не висит: (script.php?result=passerror)
в script.php:
PHP:if ($_GET('result')=='passerror') echo 'Старый пароль введён неверно';
$errors = array("auth" => "Ошибка авторизации", "old" => "Пароль устарел");
if (isset($_GET['error']) && isset($errors[$_GET['error'])) {
echo $errors[$_GET['error']];
}