Вы не зашли.
Главная » PHP » авторизация $_COOKIE
#111. tipsun Off (19)
Moderator
2012.07.23 00:12
Ok. Спс.
#112. tipsun Off (19)
Moderator
2012.07.26 14:02
Как-то так?
Код:
span style="color: #0000BB"><?php//DB//$db = DB::singleton();//COOKIES//$user = array();if (@$_COOKIE[INI_COOKIE_NAME]) { // INDEX KEY `cookie_id` $qt = 'SELECT * ' . 'FROM `users` ' . 'WHERE `users`.`cookie_id` = ? ' . 'LIMIT 1;'; $args = array($_COOKIE[INI_COOKIE_NAME]); $q = $db->prepare($qt); // Fixed if ($q and $q->execute($args) and $q->rowCount()) { $user = $q->fetch(); if ($user['cookie_timestamp'] < $_SERVER['REQUEST_TIME']) { $_COOKIE[INI_COOKIE_NAME] = md5(uniqid()); $qt = 'UPDATE `users` ' . 'SET `users`.`cookie_timestamp` = ?, ' . '`users`.`cookie_id` = ? ' . 'WHERE `users`.`user_id` = ? ' . 'LIMIT 1;'; $args = array($_SERVER['REQUEST_TIME'] + INI_COOKIE_LIFETIME, $_COOKIE[INI_COOKIE_NAME], $user['user_id']); if ($db->prepare($qt)->execute($args)) { setcookie(INI_COOKIE_NAME, $_COOKIE[INI_COOKIE_NAME], INI_COOKIE_EXPIRE, INI_COOKIE_PATH, INI_COOKIE_DOMAIN, INI_COOKIE_SECURE, INI_COOKIE_HTTPONLY); } } } else { setcookie(INI_COOKIE_NAME, null, 0, INI_COOKIE_PATH, INI_COOKIE_DOMAIN, INI_COOKIE_SECURE, INI_COOKIE_HTTPONLY); unset($_COOKIE[INI_COOKIE_NAME]); }}
Отредактировано tipsun (2012.07.27 18:06)
#113. Gemorroj Off (107)
Administrator
2012.07.26 15:03
$q в пером запросе тоже проверяй
#114. tipsun Off (19)
Moderator
2012.07.26 15:03
Так вроде проверяется.
Код:
span style="color: #0000BB"><?php$q = $db->prepare($qt); if ($q->execute($args) and $q->rowCount()) {}
#115. Gemorroj Off (107)
Administrator
2012.07.26 19:07
Код:
span style="color: #0000BB"><?phpif ($q && $q->execute($args) and $q->rowCount()) {}
Отредактировано tipsun (2012.07.27 04:04)
#116. tipsun Off (19)
Moderator
2012.07.26 19:07
Ого.
Ну да, логично. prepare().
Отредактировано tipsun (2012.07.26 19:07)
#117. tipsun Off (19)
Moderator
2012.07.27 22:10
Я решил fetch() тоже не обременять.
Код:
span style="color: #0000BB"><?php if ($q and $q->execute($args) and $q->rowCount() and $user = $q->fetch() and // гулять так гулять. $user['cookie_timestamp'] < $_SERVER['REQUEST_TIME']) { $_COOKIE[INI_COOKIE_NAME] = md5(uniqid()); //... }
Отредактировано tipsun (2012.07.27 22:10)
#118. tipsun Off (19)
Moderator
2012.07.30 20:08
habrahabr.ru/post/13726 - хорошая статья.
Добавлено спустя   4 минуты  9 секунд:
- Поле Cookie_timestamp наверно лишнее. Можно и auth_timestamp, время последней авторизации, использовать.
- Привязку к ип попробую прикрутить
- Еще забыл проверять remember - при регенерации печенья чтоб нужный срок действия задать.
#119. Gemorroj Off (107)
Administrator
2012.07.30 21:09
tipsun, 2007 год)
#120. tipsun Off (19)
Moderator
2012.07.30 22:10
Да..., не умею я пользоваться поисковиком. smile
Страниц: 110 11 12 Все
Главная
WEB
PunBB Mod v0.6.2
0.018 s