0

0

php如何获取所有的sessionid或获取所有的session?

不言

不言

发布时间:2018-05-15 16:20:13

|

16375人浏览过

|

来源于php中文网

原创

php获取所有的sessionid或获取所有的session的方法:session的高级用法,把session写到memcache或数据库里,就可以实现了,如果是以文件系统来驱动,你可以通过【session_save_path()】来获取。

php如何获取所有的sessionid或获取所有的session?

就是想通过一个.php文件读取所有的 sessionid ?或获取所有的session ??  

回复讨论(解决方案)

print_r($_SESSION);
print_r($_SESSION);

我的意思是。读取所有用户,不是单一个。  
比如A用户在A地区登陆产生一个SESSIONID  B用户在B地区登陆产生一个SESSIONID   
同时获取

所有的用户需要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) prepare($sql);			
	$stmt->execute(array($PHPSESSID));			
	if($result=$stmt->fetch(PDO::FETCH_ASSOC)){				
	if($result['data'] != $data || self::$time > ($result['update_time']+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(?,?,?,?)";					
	$sth=self::$handler->prepare($sql);					
	$sth->execute(array($PHPSESSID, self::$time, self::$ip, $data));				
	}			
	}			
	return true;		
	}		
	public static function destroy($PHPSESSID){			
	$sql="delete from session where PHPSESSID = ?";			
	$stmt=self::$handler->prepare($sql);			
	$stmt->execute(array($PHPSESSID));			
	return true;		
	}		
	private static function gc($lifetime){			
	$sql = "delete from session where update_time prepare($sql);			
	$stmt->execute(array(self::$time-$lifetime));			
	return true;		
	}		
	}	
	try{		
	$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456");	
	}catch(PDOException $e){		
	echo $e->getMessage();	}	
	Session::start($pdo);

用这个类

TGroupon分销系统
TGroupon分销系统

TGROUPON分销系统,隶属于易推软件所属旗下产品,TGROUPON简称TG分销系统。核心框架采用了ECSHOP+ECTOUCH系统,并使用PHP做为核心编程语言。TG分销系统前身为ThinkGroupon,始创于2011年,并拥有多项国家著作权、商标权。优势1:TG分销系统可以很好的融入到微信端,快速、便捷地接入微信公众号。轻轻松松获取微信端粉丝头像、姓名等一系列会员信息,有效的形成大数据数据

下载

默认的,如果是以文件系统来驱动,你可以通过 session_save_path() 来获取session文件的存储位置。然后依次读取每个文件并反序列化。  
每个用户的session id对应一个文件,这个文件以 sess_ 开头,存储在 session_save_path() 锁设定的位置。  

这类不行吧

将session.save_handler改成db,然后去读那个db。不过files也可以,那你就去读session.save_path下的文件吧。

echo session_id()

所有的sessionid只能通过session的存储目录来读取的,或者将所有session保存在数据库。

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

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

329

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

773

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

97

2025.08.19

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

374

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2093

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

356

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

259

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

329

2023.10.09

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

796

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号