这篇文章主要介绍了php session的应用详细介绍的相关资料,需要的朋友可以参考下
php session高级应用
session在web技术中非常重要,由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态。通过session则可以记录用户的有关信息,以供用户再次以此身份对web服务器提交要求时确认。
例如:用户在浏览电子商务网站的时候,如果没有session,那么用户每次浏览就需要输入账户密码。
1,Session 临时文件
在服务器中,如果将用户所有的Session都保存到临时目录中,会降低服务器的安全性和效率。打开服务器存储的站点会非常的慢。
使用PHP函数session_save_path()函数存储Session临时文件,可以缓解因临时文件的存储导致的服务器效率降低和站点打开缓慢的问题。
示例代码如下:
<?php$path ="./tmp/"; //设置session存储的路径session_save_path($path);session_start();$_SESSION['userName']=true;?>
注意
session_save_path() 必须在session_start() 之前执行。
2,Session 缓存
Session 缓存是将网页中的内容临时存储到IE客户端的Temporary INternet Files文件夹,并且可以设置缓存的时间。
Session的缓存使用的是 session_cache_limiter()函数,其语法如下:
string session_cache_limiter([string cache_limiter]);
其中参数cache_limiter 为public 或p
搞代gaodaima码rivate 。同事session不是在服务器端,而是在客户端。在服务器中没有显示。
缓存时间的设置,使用的是函数 session_cache_expire()语法如下:
int session_cache_expire([int new_cahche_expire]);
参数new_cahche_expire 是session缓存的时间数字,单位分钟。
注意:
这两个session函数必须在session_start()函数之前执行
session 缓存页面的示例代码如下:
<?phpsession_cache_limiter("private");$cache_limit =session_cache_limiter(); //开启客户端缓存echo "缓存限制为:".$cache_limit."\n";session_cache_expire(30);$cache_expire = session_cache_expire(); //设定客户端缓存时间echo "客户端缓存时间为:".$cache_expire."分钟\n";session_start();?>
运行结果如下:
3,Session数据库存储
在php中Session 的数据库存储主要是通过 session_set_save_handler()函数来实现的。 具体语法如下:
bool session_set_save_handler(string open,string close,string read,string write,string destroy,string gc);
下面分别将这6个参数(函数)分装起来,在学习完面向对象编程后,大家会有一个更加清晰的认识。
(1) 封装session_open()函数,代码如下:
function _session_open($save_path,$session_name){global $handle;$handle =mysql_connect('localhost','root','root')or die('数据库连接失败!');mysql_select_db('db_database11',$handle)or die('数据库不存在');return(true);}
(2)封装session_close()函数,代码如下:
function _session_close(){global $handle;mysql_close($handle);return(true);}