下面我把它们介绍给大家吧
其中session__save_handler可真是个好东西
//********************
session_un (PHP4 >= 4.0b4)
void session_un(void);
这个可以把当然注册所有session变量置为空注意它不是unregister也区别于destroy
下面这个例子对此做了很好介绍说明
<?php
session_register('a','b','c'); //auto-session-start
$a=1;
$b=2;
$c=3;
session_unregister('a'); //unregistrered $a
echo "A: $a - reg:".session_is_registered('a')."
"; // but the global $a res
session_un; // uns $b und $c
echo "B:$b - reg:".session_is_registered('b')."
"; // the registration res !
echo "C:$c - reg:".session_is_registered('c')."
";
echo session_encode;
?>
输出:
A: 1 - reg:
B: - reg:1
C: - reg:1
!b|!c|
//********************************
session_get_cookie_params (PHP4 >= 4.0RC2)
.gif' /> session_get_cookie_params (void);
返回个记录了当前sessioncookie些信息
有:
"letime" - cookie生存期
"path" - cookie保存路径
"do" - cookie域
//*******************************
session__cookie_params (PHP4 >= 4.0b4)
void session__cookie_params ( letime [, path [, do]])
设置sessioncookie些参参数类似于php.ini中设置但本所作设置只对当前脚本文件有效
//*******************************
下面要介绍这个应是对大家都很有用你是不是对自定义个不用cookie来保存session有兴趣呢?这个就可以实现你这样设想
让我想想如果不用cookie好处是什么?至少点你不用担心客户端cookie功能是否打开了对吧
session__save_handler (PHP4 >= 4.0b4)
void session__save_handler ( open, close, read, write, destroy, gc)
这个可以定义用户级session保存(打开、关闭、写入等)
比如我们想把session保存在本地个数据库中时本就很有用了
!!!注意:使用本前先要配置php.ini文件session.save_hadler=user 否则session__save_handler不会生效
此外根据我测试你如果想让这样session跨页面使用还要在每个用到session脚本文件中加入你自定及session__save_handler所以最好思路方法是做成个单独文件在每个要用到session脚本中用来包含进来
下面这个例子提供了个最基本session保存法类似于默认files思路方法
如果你想用数据库来实现这也是很容易做到
Example 1. session__save_handler example
<?php
function open ($save_path, $session_name) {
global $sess_save_path, $sess_session_name;
$sess_save_path = $save_path;
$sess_session_name = $session_name;
(true);
}
function close {
(true);
}
function read ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
($fp = @fopen($sess_file, "r")) {
$sess_data = fread($fp, filesize($sess_file));
($sess_data);
} {
("");
}
}
function write ($id, $sess_data) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
($fp = @fopen($sess_file, "w")) {
(fwrite($fp, $sess_data));
} {
(false);
}
}
function destroy ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
(@unlink($sess_file));
}
/*********************************************
* WARNING - You will need to implement some *
* sort of garbage collection routine here. *
*********************************************/
function gc ($maxletime) {
true;
}
session__save_handler ("open", "close", "read", "write", "destroy", "gc");
session_start;
// proceed to use sessions normally
// 现在你就可以象往常样地使用session了
?>
//***************************************
session_cache_limiter (PHP4 CVS _disibledevent= session_cache_limiter;
echo "The cache limiter is now to $cache_limiter<p>";
?>
//*****************************
最新评论