php同时使用session和cookie来保存用户登录信息的实现代码_php实例

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来保存用户登录信息的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, cookie
session
cookie实现记住用户名、cookie实现用户登录、session实现用户登录、session实现用户登陆、session cookie区别,以便于您获取更多的相关知识。

时间: 2024-09-12 00:01:18

php同时使用session和cookie来保存用户登录信息的实现代码_php实例的相关文章

php中如何同时使用session和cookie来保存用户登录信息

本篇文章是对在php中同时使用session和cookie来保存用户登录信息的实现代码进行了详细的分析介绍,需要的朋友参考下   同时使用session和cookie来保存用户登录信息1.数据库连接配置页面:connectvars.php 复制代码 代码如下: <?php //数据库的位置 define('DB_HOST', '127.0.0.1'); //用户名 define('DB_USER', 'root'); //口令 define('DB_PASSWORD', '19900101');

php中如何同时使用session和cookie来保存用户登录信息_php技巧

同时使用session和cookie来保存用户登录信息1.数据库连接配置页面:connectvars.php 复制代码 代码如下: <?php//数据库的位置define('DB_HOST', '127.0.0.1');//用户名define('DB_USER', 'root');//口令define('DB_PASSWORD', '19900101');//数据库名define('DB_NAME','test') ;?> 2.登录页面:logIn.php 复制代码 代码如下: <?ph

php中session实现保存用户登录信息

简单的创建session  代码如下 复制代码 <? session_start(); $username = "nostop"; session_register("username"); ?> 在该例子中,我们向 session 注册了一个名为 username 的变量,其值为 nostop . 读取 session PHP 内置的 $_SESSION 变量可以很方便的访问设置的 session 变量.  代码如下 复制代码 例子: <?php

PHP中如何使用session实现保存用户登录信息_php实例

session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦. 使用session保存页面登录信息 1.数据库连接配置页面:connectvars.php <?php //数据库的位置 define('DB_HOST', 'localhost'); //用户名 define('DB_USER', 'root'); //口令 define('DB_PASSW

php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码_php实例

这里讲一个简单的方法,直接使用discuz的include/common.inc.php来登录. 复制代码 代码如下: include_once("../discuz/include/common.inc.php"); $CTDF_USERINFO = array(); $CTDF_USERINFO["sid"] = $sid; $CTDF_USERINFO["uid"] = $discuz_uid; $CTDF_USERINFO["u

php使用cookie保存用户登录的用户名实例_php技巧

本文实例讲述了php使用cookie保存用户登录的用户名的方法.分享给大家供大家参考.具体实现方法如下: 用户登录文件:login.php 复制代码 代码如下: <html> <head> <title>用户登录</title> </head> <body> <?php function getCookieUsername(){  if(empty($_COOKIE['username'])){   return "&

jquery.cookie.js实现用户登录保存密码功能的方法_jquery

本文实例讲述了jquery.cookie.js实现用户登录保存密码功能的方法.分享给大家供大家参考,具体如下: 需要导入的js有jquery.js和jquery.cookie.js <script type="text/javascript" src=" jquery-1.5.2.js"></script> <script type="text/javascript" src="jquery.cookie.

win7系统禁止显示用户登录信息的设置方法

  win7系统功能强大,有着xp系统不可比拟的其他功能,不过有些功能虽然强大,但为了保障系统安全信息,最好还是禁用掉为好.比如当用户登录系统桌面时,可以查看上次具体登录情况,包括时间和使用账号.虽然此功能可以方便查看上次登录的具体信息,但为了防止信息泄露,保障系统安全信息,我们可以把显示用户登录信息的功能禁用掉,那么应该如何禁用掉呢?下面就跟小编一起来了解下吧! 方法如下: 1.按"win+r"组合键打开"运行"选项,输入"gpedit.msc"

sharesdk-请大神指教!shareSDK第三方登录,返回了用户登录信息,但是一直报空指针异常,可是有返回值

问题描述 请大神指教!shareSDK第三方登录,返回了用户登录信息,但是一直报空指针异常,可是有返回值 这是我的代码,先点击一个图片按钮,然后跳转到授权界面,当授权完成的时候,再把值返回在这个类里面,但是运行的时候一直报这句left_menu_fragment_textview.setText(userInfo.getUserName());是空指针异常,这是怎么回事 public class LeftMenuFragment extends BaseFragment { private Im