首頁 > 後端開發 > php教程 > php 怎么获取所有的 sessionid ?或获取所有的session

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

WBOY
發布: 2016-06-13 12:56:28
原創
1138 人瀏覽過

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

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

session php
------解决方案--------------------
怎么没人回呢??
------解决方案--------------------
print_r($_SESSION);
------解决方案--------------------
所有的用户需要session数据库甚至一个session管理系统
google一下,有前人努力的成果
------解决方案--------------------
session的高级用法,把session写到memcache或数据库里,就可以实现了
------解决方案--------------------
	class Session {<br>
		private static $handler=null;<br>
		private static $ip=null;<br>
		private static $lifetime=null;<br>
		private static $time=null;<br>
//初始化变量;<br>
		private static function init($handler){<br>
			self::$handler=$handler;<br>
			//$_SERVER["REMOTE_ADDR"]获取客户端路由地址;<br>
			self::$ip = !empty($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : 'unknown';<br>
			//ini_get()获取配置文件变量;<br>
			self::$lifetime=ini_get('session.gc_maxlifetime');<br>
			self::$time=time();<br>
		}<br>
<br>
		static function start(PDO $pdo){<br>
			self::init($pdo);<br>
			//_CLASS_  代表本类;<br>
			session_set_save_handler(<br>
					array(__CLASS__,"open"),<br>
					array(__CLASS__,"close"),<br>
					array(__CLASS__,"read"),<br>
					array(__CLASS__,"write"),<br>
					array(__CLASS__,"destroy"),<br>
					array(__CLASS__,"gc")<br>
				);<br>
<br>
			session_start();<br>
		}<br>
<br>
		public static function open($path, $name){<br>
			return true;<br>
		}<br>
<br>
		public static function close(){<br>
			return true;<br>
		}<br>
		<br>
		public static function read($PHPSESSID){<br>
			$sql="select PHPSESSID, update_time, client_ip, data from session where PHPSESSID= ?";<br>
<br>
			$stmt=self::$handler->prepare($sql);<br>
<br>
			$stmt->execute(array($PHPSESSID));<br>
			<br>
			if(!$result=$stmt->fetch(PDO::FETCH_ASSOC)){<br>
				return '';<br>
			}<br>
<br>
			if( self::$ip  != $result["client_ip"]){<br>
				self::destroy($PHPSESSID);<br>
				return '';<br>
			}<br>
<br>
			if(($result["update_time"] + self::$lifetime) 
				self::destroy($PHPSESSID);<br>
				return '';<br>
			}<br>
<br>
			return $result['data'];<br>
<br>
		}<br>
<br>
		public static function write($PHPSESSID, $data){<br>
			$sql="select PHPSESSID, update_time, client_ip, data from session where PHPSESSID= ?";<br>
<br>
			$stmt=self::$handler->prepare($sql);<br>
<br>
			$stmt->execute(array($PHPSESSID));<br>
<br>
			if($result=$stmt->fetch(PDO::FETCH_ASSOC)){<br>
				if($result['data'] != $data <br><font color="#FF8000">------解决方案--------------------</font><br> self::$time > ($result['update_time']+30)){<br>
					$sql="update session set update_time = ?, data =? where PHPSESSID = ?";<br>
					<br>
					$stm=self::$handler->prepare($sql);<br>
					$stm->execute(array(self::$time, $data, $PHPSESSID));<br>
				<br>
				}<br>
			}else{<br>
				if(!empty($data)){<br>
					$sql="insert into session(PHPSESSID, update_time, client_ip, data) values(?,?,?,?)"; <div class="clear">
                 
              
              
        
            </div>
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板