Php operation class based on session and cookie User Logon status, sessioncookie
1. User Login status operation class UserLogin
<?phpfinal 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. the user enters the user name and password for relevant determination.
<? Phprequire_once 'init. php '; // if logged in, logoutif (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 ('logon successful! '); Utils: redirect ('Welcome');} foreach ($ errors as $ e) {$ msg. = $ e-> getMessage (). "<br>" ;}}?>