`
kefeng
  • 浏览: 15426 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

php之session高级

 
阅读更多

此篇主要微微讲解一下session的高级用法

php.ini配置文件中有关session高级的配置:

session.save_path:session保存地址(原路径:C:/Users/ADMINI~1/AppData/Local/Temp)
session_name:session获取到的名称
session.use_trans_sid:启用SID支持

session.gc_maxlifetime: 垃圾回收器,指定过了多少秒之后数据就会被视为垃圾,并被清除

session.gc_probability=1
session.gc_divisor=100
这两合起来就是启动gc进程管理概率的
初始化时(session_start())
概率=session.gc_probability/session.gc_divisor

session.use_cookie = 1:是否使用cookie
session.cookie_path = '/':cookie保存路径
session.cookie_domain = '': 一般不用改
session.cookie_lifetime = 0: 保存时间长

session.save_handler = files:用文件来保存会话信,改成user
session.save_handler=memcache: 如果是memcache,那么save_path=tcp://localhost:11211


一、首先在配置文件中将session.save_handler的值改为user (原本是files),将session数据保存路径改到D盘



二、在根目录下创建相关的文件


session.php 是公共的头文件,one.php 是session注册事件文件,two.php 是测试文件,three.php 是注销文件

one.php:

<?php
    include "session.php";
    
    $_SESSION["isLogin3"]=1;
    $_SESSION["username"]="admin";
    $_SESSION["uid"]=333;
    echo session_name().'='.session_id()."<br>";


two.php:
<?php
    include "session.php";
    print_r($_SESSION);
    echo '<br>';
    echo session_name().'='.session_id()."<br>";

three.php:
<?php
    include "session.php";
    
    $_SESSION=array();
    if(isset($_COOKIE[session_name()])){
    	setCookie(session_name(),'',time()-100,'/');
    }
    session_destroy();
    echo session_name().'='.session_id()."<br>";

对于公共的头文件 session.php 相对重要,这之前必须先将配置文件中的必须将session.serialize_handler = file的值改为user

session.php 要使用到 session_set_save_handler() 函数,查看手册其用到的参数,再开启session

session_set_save_handler("open","close","read","write","destroy","gc");
	session_start();

再根据参数写出各个方法,重点是把握各个函数执行的时间

open():

<span style="font-family: Arial, Helvetica, sans-serif;"></span>
//在运行session_start()是调用,读取session到$_SESSION中
    function open($save_path, $session_name){
    	global $sess_save_path;   //将保存路径设置为全局变量
    	$sess_save_path=$save_path;  //读取的路径给保存路径
    	return true;
    }


close():
//session_wirte_close()和session_destroy()
    function close(){
    	return true;
    }


read():
//session_start(),$_SESSION
    //自动把session_id传进来
    function read($id){
    	global $sess_save_path;
    	$sess_file=$sess_save_path."/kf_".$id;

    	return (string)@file_get_contents($sess_file);
    }

write():
//脚本结束时和使用session_write_close()强制提交SESSION数据时
    //直接调用$_SESSION[]="aaa";
    function write($id, $sess_data){
    	global $sess_save_path;

    	//定义保存文件及文件名
    	$sess_file=$sess_save_path."/kf_".$id;
    	if($fp=@fopen($sess_file, "w")){
    		$return=fwrite($fp, $sess_data);
    		fclose($fp);
    		return $return;
    	}else{
    		return false;
    	}
    }

的story()和gc():(删除和垃圾回收)

//session_destroy()时
    function destroy($id){
    	global $sess_save_path;
    	$sess_file=$sess_save_path."/kf_".$id;

    	//删除路径对象的文件
    	return @unlink($sess_file);
    }
    //session.gc_probability和session.gc_divisor决定的,在open()和read()读数据时,
    function gc($maxlifetime){
    	global $sess_save_path;


    	//所有过期的都要删除
    	//glob遍历出所有以"/kf"的文件作为每一个文件
    	foreach(glob($sess_save_path."/kf_*") as $filename){
    		if(filetime($filename)+$maxlifetime < time()){
    			@unlink($filename);
    			echo $filename;
    		}
    	}
    	return true;
    }






































版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    SESSION高级用法

    讲述session高级用法,自定义session存储路径,配合php.ini配置文件中的选项,如何使用session_set_save_handler()函数

    PHP中Session可能会引起并发问题

    印度医疗行业软件解决方案提供商Plus91 Technologies高级工程师Kishan Gor在个人博客上对这个问题进行了阐释。  如果同一个客户端并发发送多个请求,而每个请求都使用了Session,那么PHP Session锁的存在会导致...

    浅析PHP中Session可能会引起并发问题

    印度医疗行业软件解决方案提供商Plus91 Technologies高级工程师Kishan Gor在个人博客上对这个问题进行了阐释。 如果同一个客户端并发发送多个请求,而每个请求都使用了Session,那么PHP Session锁的存在会导致服务器...

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程32:PHP5中Cookie与 Session详解 PHP100视频教程33:PHP5中图片验证码的制作(上) PHP100视频教程34:PHP5中图片中文验证码(下) PHP100视频教程35:PHP5文字图片混合水印与缩略图 PHP100视频...

    简单PHP会话(session)说明介绍

    现在程序员愈发的不容易了,想要精通,必然要寻本溯源,这其实与目前泛滥的愈发高级的语言以及众多的框架刚好相反,因为它们在尽可能的掩盖本源使其简单,个人称之为程序员学习悖论。 注:作者接触web开发和php两周...

    php session的应用详细介绍

    php session高级应用 session在web技术中非常重要,由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态。通过session则可以记录用户的有关信息,以供用户再次以此身份对web服务器提交要求时确认。 例如:...

    Java高级面试第二套5.互联网系统垂直架构之Session解决方案

    c#、java、php等多语言解决方案源代码 Wafer - 快速构建具备弹性能力的微信小程序 https://github.com/tencentyun/wafer 重要: 1.第二步,可以在5分钟内实现; 2.成本3元(腾讯云支持微信小程序2017年推广期间,3...

    PHP函数速查效率手册 source code

    本书共分21章,PHP函数所涉及的范围包括MySQL服务器、Apache服务器、ODBC、String字符串、Array数组、Variable函数、时间日期、Hash、正则表达式、Session、Math、Filesystem、Directories、Mail、HTTP、URL、FTP、...

    高级PHP应用程序漏洞审核技术

    5.5.3 session_destroy()删除文件漏洞 5.5.4 随机函数 5.6 特殊字符 5.6.1 截断 5.6.1.1 include截断 5.6.1.2 数据截断 5.6.1.3 文件操作里的特殊字符 6. 怎么进一步寻找新的字典 7. DEMO 8. 后话 9. 附录

    php课程(共100多节)

    32:PHP5中Cookie与 Session详解 33:PHP5中图片验证码的制作(上) 34:PHP5中图片中文验证码(下) 35:PHP5文字图片混合水印与缩略图 36:PHP中正则表达式学习及应用(一) 37:PHP中正则表达式学习及应用(二) ...

    php中文完全开发手册

    Mohawk Software Session Handler Functions LXVII. muscat Functions LXVIII. Network Functions LXIX. Ncurses Terminal Screen Control Functions LXX. Lotus Notes Functions LXXI. NSAPI-specific Functions ...

    PHP从入门到精通第二版

    全书共分24章,包括初识PHP、PHP环境搭建和开发工具、PHP语言基础、流程控制语句、字符串操作、正则表达式、PHP数组、PHP与Web页面交互、PHP与JavaScript交互、日期和时间、Cookie与Session、图形图像处理技术、文件...

    PHP网络编程技术与实践 源码

    6.3 图像处理的高级技巧与应用 6.3.1 生成干扰背景图片 6.3.2 使用PHP生成3D饼状图 6.3.3 给图片添加水印 6.4 本章小结 第7章 PHP操作XML 7.1 使用XML的原因 7.1.1 结构和显示的混合 7.1.2 各种浏览器的差异 7.1.3 ...

    PHP经典100例.

    25:for的高级运用 26:简单的函数 27:有返回值的函数 28:有默认参数的函数 29:判断整数 30:动态调用函数 31:一个简单的数组 32给数组增加元素 33初始化数组 34获取数组中的元素 35创建一个多维数组 36PHP 4.0实现表格...

    PHP5 完整官方 中文教程

    APD — APD 高级 PHP 调试器 Arrays — Array 数组函数 Aspell — Aspell 函数(已废弃) BBCode — BBCode Functions BC math — BC math 高精度数学函数 bcompiler — BCompiler PHP 字节码编译器 Bzip2 — Bzip2 ...

    PHP入门到精通

    14.3PHP对象的高级应用 PHP加密技术(教学录像:34分45秒) 15.1加密技术概述 15.2PHP加密函数 15.3PHP加密扩展库 MySQL数据库基础(教学录像:58分50秒) 16.1MYSQL简介 16.2MySQL的特点 16.3启动、连接、断开和...

    PHP经典实例(第2版)

    从初学者常见的问题到高级Web编程技术,这本包含了丰富的、具有实际应用价值的实例图书,可以满足使用PHP生成动态web内容的任何人的需要。书中的每个实例都细致地讨论了所提供解决方案背后的逻辑和思想,用源自PHP...

    PHP入门到精通02

    14.3PHP对象的高级应用 PHP加密技术(教学录像:34分45秒) 15.1加密技术概述 15.2PHP加密函数 15.3PHP加密扩展库 MySQL数据库基础(教学录像:58分50秒) 16.1MYSQL简介 16.2MySQL的特点 16.3启动、连接、断开和...

    pasc2at:高级PHP应用程序漏洞审核技术 by 80vul

    高级PHP应用程序漏洞审核技术前言传统的代码审计技术PHP版本与应用代码审计其他的因素与应用代码审计扩展我们的字典变量本身的key变量覆盖遍历初始化变量parse_str()变量覆盖漏洞import_request_variables()变量覆盖...

Global site tag (gtag.js) - Google Analytics