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来保存用户登录信息的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持phpstudy。
本文地址:https://www.stayed.cn/item/23121
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我