php同时使用session和cookie来保存用户登录信息的实现代码
程序员文章站
2023-12-21 15:40:46
1、用户登录状态操作类userlogin
1、用户登录状态操作类userlogin
<?php final class userlogin { public function __construct() { } public static function getuserinfo() { if (isset($_cookie["user_id"])&&$_cookie["user_id"]&&(trim($_cookie["user_id"])!="")) { if (isset($_session["user_info"])) return $_session["user_info"]; $dao = new userdao(); $user = $dao->find($_cookie["user_id"]); if ($user) { $_session["user_info"] = $user; setcookie("docloud_sid", session_id(), time() + 36000); setcookie("user_id", $_cookie["user_id"], time() + 36000); if (array_key_exists("selected_prj_id", $_cookie)) setcookie("selected_prj_id", $_cookie["selected_prj_id"], time() + 36000); if (array_key_exists("selected_class_id", $_cookie)) setcookie("selected_class_id", $_cookie["selected_class_id"], time() + 36000); if (array_key_exists("selected_image_id", $_cookie)) setcookie("selected_image_id", $_cookie["selected_image_id"], time() + 36000); if (array_key_exists("test_image_ids", $_cookie)) setcookie("test_image_ids", $_cookie["test_image_ids"], time() + 36000); if (array_key_exists("upload_image_ids", $_cookie)) setcookie("upload_image_ids", $_cookie["upload_image_ids"], time() + 36000); return $user; } } self::clearcookie(); return null; } public static function setuserinfo($userinfo) { $_session["user_info"] = $userinfo; setcookie("docloud_sid", session_id(), time() + 36000); setcookie("user_id", $userinfo->getid(), time() + 36000); } public static function islogin() { if (self::getuserinfo()) { return true; } return false; } public static function deluserinfo() { self::clearcookie(); session_destroy(); } private static function clearcookie() { setcookie("docloud_sid", "", time() - 36000); setcookie("user_id", "", time() - 36000); setcookie("selected_prj_id", "", time() - 36000); setcookie("selected_class_id", "", time() - 36000); setcookie("selected_image_id", "", time() - 36000); setcookie("test_image_ids", "", time() - 36000); setcookie("upload_image_ids", "", time() - 36000); } } ?>
2、在用户输入用户名、密码处调用来做相关判定
<?php require_once 'init.php'; // if logged in, logout if (userlogin::islogin() && $_cookie["user_id"]==1) { userlogin::deluserinfo(); } else if (userlogin::islogin()){ utils::redirect('welcome'); } $username = null; $password = null; $msg = ""; if (isset($_post['username']) && isset($_post['password'])) { $username = addslashes(trim(stripslashes($_post ['username']))); $password = addslashes(trim(stripslashes($_post ['password']))); // validate $errors = loginvalidator::validate($username, $password); if (empty($errors)) { // save $dao = new userdao(); $user = $dao->findbyname($username); $last_login_ip = utils::getipaddress(); $user->setlastloginip($last_login_ip); $now = new datetime(); $user->setlastlogintime($now); $dao->save($user); userlogin::setuserinfo($user); flash::addflash('登录成功!'); utils::redirect('welcome'); } foreach ($errors as $e) { $msg .= $e->getmessage()."<br>"; } } ?>
以上这篇php同时使用session和cookie来保存用户登录信息的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
php同时使用session和cookie来保存用户登录信息的实现代码
-
php中如何同时使用session和cookie来保存用户登录信息
-
php中如何同时使用session和cookie来保存用户登录信息
-
php中使用cookie来保存用户登录信息的实现代码_php实例
-
php同时使用session和cookie来保存用户登录信息的实现代码_php实例
-
php中如何同时使用session和cookie来保存用户登录信息_PHP教程
-
php同时使用session和cookie来保存用户登录信息的实现代码,sessioncookie
-
php同时使用session和cookie来保存用户登录信息的实现代码,sessioncookie
-
php中如何同时使用session和cookie来保存用户登录信息_php技巧
-
php中使用cookie来保存用户登录信息的实现代码_php实例