PHP网页设计利用无穷性命期Session的办法(转)
学习了六个多月PHP了,还是个新手,在这里受到了很多人的帮助,谢谢你们!session 利用无穷性命期Session的办法本文不敢说十分好,然而笔者信任大多半PHPer都已经想过这些成绩。
利用无穷性命期Session的办法
在PHP4.0中到场了对Session的撑持,便利了咱们良多法式,好比购物车等等!
在良多服装论坛中,Session也用于处置用户的上岸,纪录下用户名和暗码,使得用户不用每次都输出本人的用户名和暗码!然而普通的Session的性命期无限,假如用户封闭了阅读器,就不克不及保留Session的变量了!那末怎样可以完成Session的永世性命期呢?
人人晓得,Session贮存在办事器端,依据客户端供应的SessionID来失掉这个用户的文件,然后读取文件,获得变量的值,SessionID可使用客户真个Cookie或Http1.1协定的Query_String(就是会见的URL的“?”前面的局部)来传送给办事器,然后办事器读取Session的目次……
要完成Session的永世性命期,起首需求懂得一下php.ini关于Session的相干设置(翻开php.ini文件,在“”局部):
1、session.use_cookies:默许的值是“1”,代表SessionID利用Cookie来传递,反之就是利用Query_String来传递;
2、session.name:这个就是SessionID贮存的变量称号,多是Cookie,也多是Query_String来传递,默许值是“PHPSESSID”;
3、session.cookie_lifetime:这个代表SessionID在客户端Cookie贮存的工夫,默许是0,代表阅读器一封闭SessionID就作废……就是由于这个所以Session不克不及永世利用!
4、session.gc_maxlifetime:这个是Session数据在办事器端贮存的工夫,假如超越这个工夫,那末Session数据就主动删除!
还有良多的设置,不外和本文相干的就是这些了,上面入手下手讲利用永世Session的道理和步调。
后面说过,办事器经由过程SessionID来读取Session的数据,然而普通阅读器传送的SessionID在阅读器封闭后就没有了,那末咱们只需求工资的设置SessionID而且保留上去,不就能够……
假如你具有办事器的操作权限,那末设置这个十分十分的复杂,只是需求停止以下的步调:
1、把“session.use_cookies”设置为1,翻开Cookie贮存SessionID,不外默许就是1,普通不必修正;
2、把“session.cookie_lifetime”改成正无量(固然没有正无量的参数,不外999999999和正无量也没有甚么区分);
3、把“session.gc_maxlifetime”设置为和“session.cookie_lifetime”一样的工夫;
设置终了后,翻开编纂器,输出以下的代码:
------------------------------------------------------------------------------------
<?
session_start();
session_register('count');
$count++;
echo $count;
?>
------------------------------------------------------------------------------------
然后保留为“session_check.php”,用阅读器翻开“session_check.php”,看看显示的是否是“1”,再封闭阅读器,然后再翻开阅读器会见“session_check.php”,假如显示“2”,那末祝贺了,你已胜利;假如掉败的话,请反省你后面的设置。
然而假如你没有办事器的操作权限,那就对照费事了,你需求经由过程PHP法式改写SessionID来完成永世的Session数据保留。查查php.net的函数手册,可以见到有“session_id”这个函数:假如没有设置参数,那末将前往以后的SessionID,假如设置了参数,就会将以后的SessionID设置为给出的值……
只需使用永世性的Cookie加上“session_id”函数,就能够完成永世Session数据保留了!
然而为了便利,咱们需求晓得办事器设置的“session.name”,然而普通用户都没有权限检查办事器的php.ini设置,不外PHP供应了一个十分好的函数“phpinfo”,使用这个可以检查几近一切的PHP信息!
------------------------------------------------------------------------------------
<title>PHP相干信息显示</title>
<?phpinfo()?>
------------------------------------------------------------------------------------
翻开编纂器,输出下面的代码,然后在阅读器中运转这个法式,会晤到PHP的相干信息(如图1所示)。个中有一项“session.name”的参数(图中已标出),这个就是咱们需求的办事器“session.name”,通常为“PHPSESSID”。
记下了SessionID的称号后,咱们就能够完成永世的Session数据贮存了!
翻开编纂器,输出上面的代码:
------------------------------------------------------------------------------------
<?
session_start(); // 启动Session
session_register('count'); // 注册Session变量Count
if(isset($PHPSESSID)) {
session_id($PHPSESSID);
} // 假如设置了$PHPSESSID,就将SessionID赋值为$PHPSESSID,不然生成SessionID
$PHPSESSID = session_id(); // 获得以后的SessionID
$count++; // 变量count加1
setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // 贮存SessionID到Cookie中
echo $count; // 显示Session变量count的值
?>
------------------------------------------------------------------------------------
保留以后,使用和方才具有办事器权限时分的检测一样的办法,检测是不是胜利的保留了SessionID。
跋文:
其实真实的永世贮存是不成能的,由于Cookie的保留工夫无限,而办事器的空间也无限……然而关于一些需求保留工夫对照长的站点,以上办法就已足够了!关于Session的其他使用,可以拜见zphp.com的文章。
最初,笔者的调试情况:Windows98DigExt(SE)+Apache+PHP 4.04。 刚开始觉得自己对这些多少有些基础,很简单,但是看了老师那么熟练的进行网页布局的时候,突然之间发现,其实,我的基础并没有自己想像的那么好,自己设计的页面其实并不好看,就连表格的边框为1像素都不会弄。 爱上php,他也会爱上你。 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 当然这种网站的会员费就几十块钱。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 Ps:以上纯属原创,如有雷同,纯属巧合 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 爱上php,他也会爱上你。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 兴趣是最好的老师,百度是最好的词典。
页:
[1]