Home >Backend Development >PHP Tutorial >PHP session advanced_PHP tutorial

PHP session advanced_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:01:51777browse

php session advanced

This article mainly explains the advanced usage of session

Advanced session configuration in the php.ini configuration file:

session.save_path: session save address (original path: C:/Users/ADMINI~1/AppData/Local/Temp)
session_name: The name obtained by session
session.use_trans_sid: Enable SID support

session.gc_maxlifetime: Garbage collector, specifies the number of seconds after which data will be considered garbage and cleared

session.gc_probability=1
session.gc_divisor=100
The combination of these two is the probability of starting the gc process management
During initialization (session_start())
Probability=session.gc_probability/session.gc_divisor

session.use_cookie = 1: Whether to use cookies
session.cookie_path = '/': Cookie saving path
session.cookie_domain = '': Generally no need to change
session.cookie_lifetime = 0: long storage time

session.save_handler = files: Use files to save session information, change to user
session.save_handler=memcache: If it is memcache, then save_path=tcp://localhost:11211

1. First, change the value of session.save_handler to user (originally files) in the configuration file, and change the session data saving path to the D drive

2. Create relevant files in the root directory

session.php is a public header file, one.php is a session registration event file, two.php is a test file, and three.php is a logout file

one.php:

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

two.php:
<!--?php
    include "session.php";
    print_r($_SESSION);
    echo &#39;<br-->&#39;;
    echo session_name().&#39;=&#39;.session_id()."
";

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

It is relatively important for the public header file session.php. Before doing this, in the configuration file must be changed and the value of session.serialize_handler = file must be changed to user

session.php To use the session_set_save_handler() function, check the manual for the parameters used, and then open the session

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

Then write each method according to the parameters. The focus is to grasp the execution time of each function.

open():


//在运行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() and gc(): (deletion and garbage collection)

//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;
    }





www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/971081.htmlTechArticleAdvanced Session in PHP This article mainly explains the advanced usage of session in the php.ini configuration file. Configuration: session.save_path: session save address (original path: C...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn