1、用户登录状态操作类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、在用户输入用户名、密码处调用来做相关判定
<?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('登录成功!');Utils::redirect('welcome');}foreach ($errors as $e) {$msg .= $e->getMessage()."<br>";}}?>
新闻热点
疑难解答