打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
php 依据session与cookie用户登录状态操作类

php 依据session与cookie用户登录状态操作类

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>";    }}?>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
session跨域一级二级域名
让Ecshop网店系统用户自动登陆
一个简单的PHP登录演示 SESSION版,COOKIE版
彻底理解PHP的SESSION机制
PHP 会话(session 时间设定)使用入门
php中的session用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服