php同時使用session和cookie來儲存使用者登入資訊的實現代碼_php執行個體

來源:互聯網
上載者:User

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>"; }}?>

以上這篇php同時使用session和cookie來儲存使用者登入資訊的實現代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.