首页 > 后端开发 > php教程 > php 怎么获取所有的 sessionid ?或获取所有的session

php 怎么获取所有的 sessionid ?或获取所有的session

z老师
发布: 2020-08-01 09:24:50
转载
1832 人浏览过

php 怎么获取所有的 sessionid ?或获取所有的session

php怎么获取所有的sessionid?或获取所有的session

session php

------解决方案--------------------

怎么没人回呢??

------解决方案--------------------

print_r($_SESSION);

------解决方案--------------------

所有的用户需要session数据库甚至一个session管理系统

google一下,有前人努力的成果

------解决方案--------------------

session的高级用法,把session写到memcache或数据库里,就可以实现了

session php
------解决方案--------------------
怎么没人回呢??
------解决方案--------------------
print_r($_SESSION);
------解决方案--------------------
所有的用户需要session数据库甚至一个session管理系统
google一下,有前人努力的成果
------解决方案--------------------
session的高级用法,把session写到memcache或数据库里,就可以实现了
------解决方案--------------------
class Session {
private static $handler=null;
private static $ip=null;
private static $lifetime=null;
private static $time=null;
//初始化变量;
private static function init($handler){
self::$handler=$handler;
//$_SERVER["REMOTE_ADDR"]获取客户端路由地址;
self::$ip = !empty($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : 'unknown';
//ini_get()获取配置文件变量;
self::$lifetime=ini_get('session.gc_maxlifetime');
self::$time=time();
}
static function start(PDO $pdo){
self::init($pdo);
//_CLASS_  代表本类;
session_set_save_handler(
array(__CLASS__,"open"),
array(__CLASS__,"close"),
array(__CLASS__,"read"),
array(__CLASS__,"write"),
array(__CLASS__,"destroy"),
array(__CLASS__,"gc")
);
session_start();
}
public static function open($path, $name){
return true;
}
public static function close(){
return true;
}
public static function read($PHPSESSID){
$sql="select PHPSESSID, update_time, client_ip, data from session where PHPSESSID= ?";
$stmt=self::$handler->prepare($sql);
$stmt->execute(array($PHPSESSID));
if(!$result=$stmt->fetch(PDO::FETCH_ASSOC)){
return '';
}
if( self::$ip  != $result["client_ip"]){
self::destroy($PHPSESSID);
return '';
}
if(($result["update_time"] + self::$lifetime) < self::$time ){
self::destroy($PHPSESSID);
return &#39;&#39;;
}
return $result[&#39;data&#39;];
}
public static function write($PHPSESSID, $data){
$sql="select PHPSESSID, update_time, client_ip, data from session where PHPSESSID= ?";
$stmt=self::$handler->prepare($sql);
$stmt->execute(array($PHPSESSID));
if($result=$stmt->fetch(PDO::FETCH_ASSOC)){
if($result[&#39;data&#39;] != $data 
------解决方案--------------------
 self::$time > ($result[&#39;update_time&#39;]+30)){
$sql="update session set update_time = ?, data =? where PHPSESSID = ?";
$stm=self::$handler->prepare($sql);
$stm->execute(array(self::$time, $data, $PHPSESSID));
}
}else{
if(!empty($data)){
$sql="insert into session(PHPSESSID, update_time, client_ip, data) values(?,?,?,?)";
登录后复制

相关专题推荐php session (包含图文、视频、案例)

相关标签:
php
来源:phpzy
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板