Вы не зашли.
Главная » PHP » авторизация $_COOKIE
#31. Gemorroj Off (107)
Administrator
2011.04.10 14:02
там просто проблема с тем, что папка переполнялась.
#32. tipsun Off (19)
Moderator
2011.04.10 14:02
Понял. СПС.
В след раз в ману лезть буду...
#33. tipsun Off (19)
Moderator
2011.04.10 16:04
Вот shit, поговнокодить не дают... http://phpfaq.ru/sessions
#34. Nu3oN Off (11)
Moderator
2011.04.10 21:09
Зачем так мудрить? чем обычный подход к этому делу не устроил?
Я буду лучше голоден, но между креслом и рулем и на дороге.
#35. tipsun Off (19)
Moderator
2011.04.10 23:11
Не, ну там написано типа для гостей не надо сессию начинать, как я понял.
Не надо старые сессии продолжать при получении куков, а стартовать новую с данными юзера.
- - - -
А если так делать, то надо в базу лезть.
И если даже для гостей сессию не начинать, то как captcha будет работать.
В принципе в этой сессии кроме ид, статуса и каптчи ниче не хранится у меня.
- - - -
Я в принципе писал, что пока не разбираюсь в этих делах, но хочу разобраться.
Там пример тоже приводится в конце статьи...
Отредактировано tipsun (2011.04.10 23:11)
#36. tipsun Off (19)
Moderator
2011.04.11 22:10
Заблудился я совсем...
#37. tipsun Off (19)
Moderator
2011.04.12 14:02
Набросок

Код:
span style="color: #0000BB"><?php$db = mysql_connect('localhost', 'root', ''); mysql_select_db('tsb', $db); mysql_set_charset('utf8', $db);//типа авторизовался...if(isset($_GET['auth'])) { Session_Start(); //Когда логин и пароль подошли, из базы достаем... $_SESSION['id'] = 1; //пока просто для теста. $_SESSION['team'] = 1; //пока просто для теста. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; ///// mysql_query("UPDATE `users` SET `ip`='".$_SERVER['REMOTE_ADDR']."', `remember`=1 WHERE `id`=1 LIMIT 1;", $db); //типа нажал запомнить //у меня там в говнокоде заносится и ip и browser SetCookie('REMEMBER', 1, $_SERVER['REQUEST_TIME'] + 86400, '/'); //типа нажал запомнить header('Location: http://'.$_SERVER['HTTP_HOST']); exit; }//в шляпе... не кролик...if(isset($_COOKIE['PHPSESSID'])) { Session_Start(); if(isset($_COOKIE['REMEMBER']) AND $_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) { $query = mysql_query("SELECT `id`, `team` FROM `users` WHERE `ip`='".$_SERVER['REMOTE_ADDR']."' AND `remember`=1 LIMIT 1;", $db); //если типа нажал запомнить if(mysql_num_rows($query)) { //не надо начинать старые сессии, ну ладно не будем... //Удаляем старую сессию. Можно и оставить, сервер удалит... Session_Destroy(); //Удаляем её ключ unset($_COOKIE['PHPSESSID']); //Стартуем новую сессию Session_Start(); $array = mysql_fetch_array($query, MYSQL_ASSOC); $_SESSION['id'] = $array['id']; //Из базы будет извлекаться... $_SESSION['team'] = $array['team']; //Из базы будет извлекаться... $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; header('Location: http://'.$_SERVER['HTTP_HOST']); exit; } else { //переадресация на страницу авторизации. } } else { //переадресация на страницу авторизации. } }?>
Отредактировано tipsun (2011.04.12 15:03)
#38. Gemorroj Off (107)
Administrator
2011.04.12 16:04
перед тем как делаешь session_destroy сделай еще и $_SESSION = null;
и пиши имена функций с маленькой буквы не  Session_Destroy, а  session_destroy.
а вообще не вижу смысла делать session_destroy, а затем сразу же делать session_start.
#39. DarkDaNTe Off (11)
Участник
2011.04.12 19:07
Код:
span style="color: #0000BB"><?phpunset($_COOKIE['PHPSESSID']);?>
и почитай как удалять куки еще
#40. tipsun Off (19)
Moderator
2011.04.12 20:08
Спс всем. Буду еще думать.

Подумал:
Код:
span style="color: #0000BB"><?php$db = mysql_connect('localhost', 'root', ''); mysql_select_db('tsb', $db); mysql_set_charset('utf8', $db);//типа авторизовался...if(isset($_GET['auth'])) { session_start(); $_SESSION['id'] = 1; //пока просто для теста. $_SESSION['team'] = 1; //пока просто для теста. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; ///// mysql_query("UPDATE `users` SET `remember`=1 WHERE `id`=1 LIMIT 1;", $db); SetCookie('REMEMBER', 1, $_SERVER['REQUEST_TIME'] + 86400, '/'); header('Location: http://'.$_SERVER['HTTP_HOST']); exit; }if(isset($_COOKIE['PHPSESSID'])) { session_start(); if(isset($_COOKIE['REMEMBER']) && $_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) { $query = mysql_query("SELECT `id`, `team` FROM `users` WHERE `ip`='".$_SERVER['REMOTE_ADDR']."' AND `remember`=1 LIMIT 1;", $db); if(mysql_num_rows($query)) { $_SESSION = null; //чистим, чтоб потом чистый файл был :) session_regenerate_id(true); //ну тут собстЭнна я и упал с велосипеда... $array = mysql_fetch_array($query, MYSQL_ASSOC); $_SESSION['id'] = $array['id']; //Из базы будет извлекаться... $_SESSION['team'] = $array['team']; //Из базы будет извлекаться... $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; header('Location: http://'.$_SERVER['HTTP_HOST']); exit; } else { //session_destroy(); - надо или нет пока не знаю... //переадресация на страницу авторизации. } } elseif(!isset($_COOKIE['REMEMBER']) && $_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) { //session_destroy(); - надо или нет пока не знаю... //переадресация на страницу авторизации. } //или просто продолжаем, если все нормально. }?>
Отредактировано tipsun (2011.04.12 22:10)
Страниц: 1 2 3 4 5 612 Все
Главная
WEB
PunBB Mod v0.6.2
0.020 s