1、用户登录状态操作类UserLogin
<?php
final 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、在用户输入用户名、密码处调用来做相关判定
<?php
require_once \'Init.php\';
// if logged in, logout
if (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来保存用户登录信息的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持phpstudy。
本文地址:https://www.stayed.cn/item/23121
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我