·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> PHP会话跟踪末与文件处理系统一(43)

PHP会话跟踪末与文件处理系统一(43)

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php会话跟踪末与文件处理系统一(43)注销变量

1、unset ($_session[‘xxx’])删除单个session变量,unset($_SESSION[‘xxx’]) 用来unregister一个已注册的session变量。其作用和session_unregister()相同。     session_unregister()在PHP5中不再使用。  注:unset($_SESSION) 此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_SESSION变量。2、$_SESSION=array() 删除多个session变量3、session_unset() 删除所有session变量

销毁会话

session_destroy()结束当前的会话,并清空会话中的所有资源。该函数不会unset(释放)和当前session相关的全局变量,也不会删除客户端的session cookie。返回值:布尔值。功能说明:这个函数结束当前的session,此函数没有参数,且返回值均为true,

注:PHP默认的session是基于cookie的,如果要删除cookie的话,必须借助setcookie()函数。

删除session的案例

<?php// 初始化session.session_start();/* 删除所有的session变量..也可用unset($_SESSION[‘xxx’])逐个删除。*/$_SESSION = array();//或session_unset();/*删除sessinid.由于session默认是基于cookie的,所以使用setcookie删除包含session id的cookie.*/if (isset($_COOKIE[session_name()])) {setcookie(session_name(), ' ', time()-42000,'/');}// 最后彻底销毁session.session_destroy();?>
持久化session

请求结束后所有注册的变量都会自动被序列化(为了方便保存到服务器端的会话文本文件中) ,读取时再进行还原。􀂙手动编码与解码:􀂾session_encode():序列号-编码􀂾session_decode():还原-解码􀂙警告: 有些类型的数据不能被序列化因此也就不能保存在会话中。包括resource变量或者有循环引用的对象(即某对象将一个指向自己的引用传递给另一个对象)。

配置会话控制

php.ini配置文件中有一组会话配置选项,可以对其进行设置。如下:􀂙session.auto_start= 0 ;在请求启动时初始化session􀂙session.cache_expire= 180 ; 设置缓存中的会话文档在n 分钟后过时􀂙session.cookie_lifetime= 0 ;设置按秒记的cookie的保存时间,相当于设置Session的过期时间,为0时表示直到浏览器被重启

也可以在php.ini里启动session.auto_start=1,这样就无需每次使用session之前都要调用session_start()。但启用该选项也有一些限制,如果确实启用了session.auto_start,则不能将对象放入会话中,因为类定义必须在启动会话之前加载以在会话中重建对象。

􀂙session.cookie_path= / ; cookie的有效路径􀂙session.cookie_domain= ; cookie的有效域􀂙session.name= PHPSESSID;用在cookie里的session的名字􀂙session.save_handler= files ; 用于保存/取回数据的控制方式􀂙session.save_path= /tmp; 在save_handler设为文件时传给控制器的参数,这是数据文件将保存的路径.􀂙session.use_cookies= 1 ; 是否使用cookies

文件处理系统文件类型

􀂙在程序运行时,程序本身和数据一般都存在内存中,当程序运行结束后,存放在内存中的数据被释放。􀂙如果需要长期保存程序运行所需的原始数据,或程序运行产生的结果,就必须以文件形式存储到外部存储介质上。􀂙文件一般指存储在外部介质上具有名字(文件名)的一组相关数据集合。用文件可长期保存数据,并实现数据共享。􀂙PHP是以UNIX的文件系统为模型的。因此在Windows系统中我们只能获得”file”、”dir”或者“unknown”三种文件类型。而在UNIX系统中,我们可以获得block、char、dir、fifo、file、link和unknown七种类型。􀂙可以使用函数filetype()获取文件的具体类型。􀂾语法:string filetype( string filename )

Liunx系统中7种文件类型说明

is_dir( ) --判断给定文件名是否是一个目录语法结构:boolis_dir(名称)返回类型:如果文件名存在并且是一个目录则返回true,否则返回false。􀂙is_executable( ) --判断给定文件名是否可执行语法结构:boolis_executable(名称)返回类型:如果文件存在且可执行则返回true ,否则返回false 。􀂙is_file( ) --判断给定文件名是否为一个正常的文件语法结构:boolis_file(名称)返回类型:如果文件存在且为正常的文件则返回true 。􀂙is_link( ) --判断给定文件名是否为一个符号连接语法结构:boolis_link(名称)返回类型:如果文件存在并且是一个符号连接则返回true。􀂙is_readable( ) --判断给定文件名是否可读语法结构:boolis_readable(文件名称)返回类型:如果文件存在并且可读则返回true。􀂙is_writable( ) --判断给定的文件名是否可写语法结构:boolis_writable(文件名称)返回类型:如果文件存在并且可写则返回true 。

文件的属性