仓酷云

标题: PHP网页编程之利用无穷性命期Session的办法 [打印本页]

作者: 谁可相欹    时间: 2015-2-4 00:24
标题: PHP网页编程之利用无穷性命期Session的办法
PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算 一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。session   在PHP4.0中到场了对Session的撑持,便利了咱们良多法式,好比购物车等等!
在良多服装论坛中,Session也用于处置用户的上岸,纪录下用户名和暗码,使得用户不用每次都输出本人的用户名和暗码!然而普通的Session的性命期无限,假如用户封闭了阅读器,就不克不及保留Session的变量了!那末怎样可以完成Session的永世性命期呢?
人人晓得,Session贮存在办事器端,依据客户端供应的SessionID来失掉这个用户的文件,然后读取文件,获得变量的值,SessionID可使用客户真个Cookie或Http1.1协定的Query_String(就是会见的URL的“?”前面的局部)来传送给办事器,然后办事器读取Session的目次……

要完成Session的永世性命期,起首需求懂得一下php.ini关于Session的相干设置(翻开php.ini文件,在“[Session]”局部):
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。

  我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。
作者: 谁可相欹    时间: 2015-2-4 13:02
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 兰色精灵    时间: 2015-2-5 21:00
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
作者: 只想知道    时间: 2015-2-13 11:39
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 小妖女    时间: 2015-2-20 01:59
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 透明    时间: 2015-2-27 04:36
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 小魔女    时间: 2015-3-8 15:37
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 蒙在股里    时间: 2015-3-11 02:04
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 若天明    时间: 2015-3-20 01:56
Ps:以上纯属原创,如有雷同,纯属巧合
作者: 金色的骷髅    时间: 2015-3-21 04:23
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
作者: 飘飘悠悠    时间: 2015-3-21 09:37
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 小女巫    时间: 2015-3-22 00:38
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 简单生活    时间: 2015-4-1 02:46
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 第二个灵魂    时间: 2015-4-1 07:09
当然这种网站的会员费就几十块钱。
作者: 变相怪杰    时间: 2015-4-3 01:00
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者: 分手快乐    时间: 2015-4-7 20:55
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 爱飞    时间: 2015-4-10 18:29
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 海妖    时间: 2015-4-16 09:12
本文当是我的笔记啦,遇到的问题随时填充
作者: 活着的死人    时间: 2015-4-22 09:12
爱上php,他也会爱上你。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2