喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

$5.95 Web Hosting     

上一主题 下一主题
 12  1/2  1  2  > 
     
标题: 让你的session更聪明,定制session的临时变量!  
  本主题被作者加入到他/她的 Blog 中  
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[广告]: 代充Paypal帐号美元
让你的session更聪明,定制session的临时变量!

一般来说session与cookie是很好的一个验证组合。优其是session在安全性能上比cookie有一定的优势。

大家都知道,session是有生命期的。可以用session_set_save_handler来进行定制存储。我的session就是保存在数据库中的,所以对所有session的变量都有比较长的生命期。有时候需要用到不同页面传递参数时,用GET或POST都不如session安全,并且使用session很方便。但是,一个传递参数不需要session的生命期的时间这么长。是临时的。当一个传递参数生成后。又可能用户提交后,这个传递参数就不需要了。或者用户根本就不提交。这就要设定一个session的临时生命变量。

翻遍了整个网络,并没有找到这样的先例。

这个过程,几天后,才想到的。

现在就跟我来分析一下,session的例子。

<?php
session_start
();//页面调用session之前
$_SESSION['abc'] = 123;//赋值
?>
所谓的临时变量,就是定义在一段时间内存在的变量。这,那么,这个变量就需要一个时间属性。比如,$_SESSION['abc']的生存时间是30秒钟。嗯,就用本身session来做吧。定义一个session临时变量,

<?php
$_SESSION
['___tmp']['abc']=time() +30;
?>
OK,举出这个例子很明显了。使用了自定义$_SESSION['___tmp']数组做为监视临时变量$_SESSION变量的生存期(正常$_SESSION变量没有)。
html是无状态语言,在另一个网页上再次打开,就遍历$_SESSION['___tmp']数组。删除一些过期的$_SESSION变量。

<?php
if($_SESSION['___tmp']['abc']=< time()){
    unset(
$_SESSION['abc'] );
    unset(
$_SESSION['___tmp']['abc']);
}
?>
这样,就达到了删除临时变量的效果了。知道这个原理后,相信大家可以做更多的用处。

[ 本帖最后由 qh663 于 2006-7-31 08:58 PM 编辑 ]




五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-7-31 08:57 PM#1
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
路过
注册会员
Rank: 2
初级会员



UID 66167
精华 0
积分 114
帖子 115
金钱 114 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2005-8-24
来自 湖南
状态 离线
[广告]: 代充Paypal帐号美元
你的session怎么写的?
2006-7-31 10:54 PM#2
查看资料  访问主页  发短消息  ICQ 状态  Yahoo!  顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读] 时间格式转换问题


<?php
if(is_array($_SESSION['__tmp_session'])){
                foreach (
$_SESSION['__tmp_session'] as $key => $value){
                    if(
$value time() or !isset($_SESSION[$key])){
                        if(isset(
$_SESSION[$key]))unset($_SESSION[$key]);
                        unset(
$_SESSION['__tmp_session'][$key]);
                    }
                }
            }
?>




五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-8-1 11:11 AM#3
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
cutejing
新手上路
Rank: 1
老会员



UID 28423
精华 0
积分 5
帖子 503
金钱 5 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-5-10
来自 流浪的人无定居所
状态 离线
[推荐阅读] 请问权限如何设置
像phpbb那样直接用cookie和数据库来模拟session 应该也不错....



the balance between love and like
2006-8-1 11:36 AM#4
查看资料  Blog  发短消息  顶部
 
远方方 (远方方)
新手上路
Rank: 1
初级会员



UID 40028
精华 0
积分 36
帖子 35
金钱 36 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-10-27
状态 离线
[推荐阅读] 北京公司招聘PHP网站开发人员
cookie毕竟是可以伪造的,还是session安全
2006-8-1 04:43 PM#5
查看资料  访问主页  发短消息  顶部
 
路过
注册会员
Rank: 2
初级会员



UID 66167
精华 0
积分 114
帖子 115
金钱 114 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2005-8-24
来自 湖南
状态 离线
[推荐阅读] 看看这个
是说那个session类怎么写的,你的不能按时清除吗?
session一样可以伪造
2006-8-1 06:40 PM#6
查看资料  访问主页  发短消息  ICQ 状态  Yahoo!  顶部
 
she
等待验证会员

初级会员



UID 29433
精华 0
积分 39
帖子 131
金钱 39 喜悦币
威望 0
人脉 0
阅读权限 0
注册 2004-6-17
来自 苏州
状态 离线
[推荐阅读] 关于权限的问题
QH666 大哥的帖子一定要顶一个 的
2006-8-2 03:19 PM#7
查看资料  发短消息  顶部
 
nesta2001zhang (nesta2001zhang)
论坛元老
Rank: 8Rank: 8
超级管理员


UID 29682
精华 0
积分 6569
帖子 2767
金钱 6569 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2004-6-28
来自 地球
状态 离线
[推荐阅读] PHP中函数返回查询值的问题,为什么会这样呢?
session用完直接unset呗 还弄个控制时间嘎哈啊
2006-8-2 10:24 PM#8
查看资料  访问主页  Blog  发短消息  顶部
 
蟋蟀
版主
Rank: 7Rank: 7Rank: 7
村里巡逻队长


UID 67242
精华 0
积分 2036
帖子 1763
金钱 2036 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2005-12-17
来自 福建
状态 离线
[推荐阅读] 问个问题!
想法不错.
session_start();
$_SESSION['name'] = array('title'=>'session控制','time'=>time()+30);
应用中确实能用到.




吉林php群
27089230
2006-8-10 06:04 PM#9
查看资料  Blog  发短消息  QQ  顶部
 
looking_for1
注册会员
Rank: 2


UID 78393
精华 0
积分 112
帖子 304
金钱 112 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2006-8-15
来自 hubei
状态 离线
[推荐阅读] java生成jpeg/png图片时,如何设置图片质量?
是否错误!!!

if($_SESSION['___tmp']['abc']=< time()){

这句里面怎么有个  =<   啊?是什么符号,小于或者等于?
2006-12-3 04:48 PM#10
查看资料  访问主页  Blog  发短消息  QQ  Yahoo!  顶部
 12  1/2  1  2  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.026732 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP