1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php通过session保存用户信息 如何在php中利用session与cookie保存用户的登录信息

php通过session保存用户信息 如何在php中利用session与cookie保存用户的登录信息

时间:2024-02-23 01:08:56

相关推荐

php通过session保存用户信息 如何在php中利用session与cookie保存用户的登录信息

如何在php中利用session与cookie保存用户的登录信息

发布时间:-12-18 15:49:56

来源:亿速云

阅读:95

作者:Leah

如何在php中利用session与cookie保存用户的登录信息?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1、用户登录状态操作类UserLogin<?php

finalclassUserLogin{

publicfunction__construct(){

}

publicstaticfunctiongetUserInfo(){

if(isset($_COOKIE["user_id"])&&$_COOKIE["user_id"]&&(trim($_COOKIE["user_id"])!="")){

if(isset($_SESSION["USER_INFO"]))

return$_SESSION["USER_INFO"];

$dao=newUserDao();

$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();

returnnull;

}

publicstaticfunctionsetUserInfo($userInfo){

$_SESSION["USER_INFO"]=$userInfo;

setcookie("docloud_sid",session_id(),time()+36000);

setcookie("user_id",$userInfo->getId(),time()+36000);

}

publicstaticfunctionisLogin(){

if(self::getUserInfo()){

returntrue;

}

returnfalse;

}

publicstaticfunctiondelUserInfo(){

self::clearCookie();

session_destroy();

}

privatestaticfunctionclearCookie(){

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';

//ifloggedin,logout

if(UserLogin::isLogin()&&$_COOKIE["user_id"]==1){

UserLogin::delUserInfo();

}

elseif(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=newUserDao();

$user=$dao->findByName($username);

$last_login_ip=Utils::getIpAddress();

$user->setLastLoginIp($last_login_ip);

$now=newDateTime();

$user->setLastLoginTime($now);

$dao->save($user);

UserLogin::setUserInfo($user);

Flash::addFlash('登录成功!');

Utils::redirect('welcome');

}

foreach($errorsas$e){

$msg.=$e->getMessage()."

";

}

}

?>

关于如何在php中利用session与cookie保存用户的登录信息问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。