仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2204|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP中利用无穷性命期Session的办法

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-16 00:25:46 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
会MYSQL吗?会,我会把我的信息在数据库里插入删除啦   

在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。


咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。
活着的死人 该用户已被删除
18#
发表于 2015-7-23 23:45:56 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
小魔女 该用户已被删除
17#
发表于 2015-7-19 04:29:46 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
山那边是海 该用户已被删除
16#
发表于 2015-7-17 09:05:16 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
15#
发表于 2015-7-6 14:19:35 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
第二个灵魂 该用户已被删除
14#
发表于 2015-6-22 23:42:13 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
透明 该用户已被删除
13#
发表于 2015-6-18 03:25:43 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
兰色精灵 该用户已被删除
12#
发表于 2015-6-13 05:01:31 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
小妖女 该用户已被删除
11#
发表于 2015-4-24 21:34:57 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
不帅 该用户已被删除
10#
发表于 2015-4-22 17:51:22 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
若天明 该用户已被删除
9#
发表于 2015-4-22 03:52:47 | 只看该作者
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
admin 该用户已被删除
8#
发表于 2015-4-7 04:55:04 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
只想知道 该用户已被删除
7#
发表于 2015-4-1 06:11:35 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
飘飘悠悠 该用户已被删除
6#
发表于 2015-3-21 05:18:48 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
海妖 该用户已被删除
5#
发表于 2015-3-15 21:45:29 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
若相依 该用户已被删除
地板
发表于 2015-3-15 07:32:46 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
再见西城 该用户已被删除
板凳
发表于 2015-3-11 17:25:30 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
谁可相欹 该用户已被删除
沙发
发表于 2015-3-4 05:20:04 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
愤怒的大鸟 该用户已被删除
楼主
发表于 2015-2-16 01:50:32 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:02

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表