仓酷云

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

[学习教程] PHP网站制作之若何设置一个严厉30分钟过时的Session

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:32:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。      我在面试的时分, 常常会问一个成绩: “若何设置一个30分钟过时的Session?”, 人人不要感觉看似复杂, 这外面包括的常识挺多, 出格合适考查根基功是不是扎实, 谁往返答尝尝? 呵呵
    为何问这个成绩呢? 1. 我在Twitter上看到了有人会商这个成绩, 2 想起来我常常问这个成绩, 所以~~
    在这里, 我来解答下这个标题.
    第一种回覆
    那末, 最多见的一种回覆是: 设置Session的过时工夫, 也就是session.gc_maxlifetime, 这类回覆是不准确的, 缘由以下:
    1. 起首, 这个PHP是用必定的几率来运转session的gc的, 也就是session.gc_probability和session.gc_divisor(引见参看 深切了解PHP道理之Session Gc的一个小几率Notice), 这个默许的值分离是1和100, 也就是有1%的时机, PHP会在一个Session启动时, 运转Session gc. 不克不及包管到30分钟的时分必定会过时.
    2. 那设置一个也许率的清算时机呢? 仍是不当, 为何? 由于PHP利用stat Session文件的修正工夫来判别是不是过时, 假如增大这个几率一来会下降功能, 二来, PHP利用”一个”文件来保留和一个会话相干的Session变量, 假定我5分钟前设置了一个a=1的Session变量, 5分钟后又设置了一个b=2的Seesion变量, 那末这个Session文件的修正工夫为添加b时辰的工夫, 那末a就不克不及在30分钟的时分, 被清算了. 别的还有上面第三个缘由.
    3. PHP默许的(Linux为例), 是利用/tmp 作为Session的默许存储目次, 而且手册中也有以下的描写:
    Note: 假如分歧的剧本具有分歧的 session.gc_maxlifetime 数值然而同享了统一个中央存储会话数据,则具有最小数值的剧本会清算数据。此情形下,与 session.save_path 一同利用本指令。
    也就是说, 假如有俩个使用都没有指定本人自力的save_path, 一个设置了过时工夫为2分钟(假定为A), 一个设置为30分钟(假定为B), 那末每次当A的Session gc运转的时分, 就会同时删除属于使用B的Session files.
    所以, 第一种谜底是不”完整严厉”准确的.
    第二种谜底
    还有一种罕见的谜底是: 设置Session ID的载体, Cookie的过时工夫, 也就是session.cookie_lifetime. 这类回覆也是不准确的, 缘由以下:
    这个过时只是Cookie过时, 换个说法这点就考查Cookie和Session的区分, Session过时是办事器过时, 而Cookie过时是客户端(阅读器)来包管的, 即便你设置了Cookie过时, 这个只能包管尺度阅读器到期的时分, 不会发送这个Cookie(包括着Session ID), 而假如经由过程机关恳求, 仍是可使用这个Session ID的值.
    第三种谜底
    利用memcache, redis等, okey, 这类谜底是一种准确谜底. 不外, 很明显出题者一定还会接着问你, 假如只是利用PHP呢?
    第四种谜底
    固然, 面试不是为了岂非你, 而是为了考查思虑的严密性. 在这个过程当中我会提醒出这些圈套, 所以普通来讲, 合适题意的做法是:
    1. 设置Cookie过时工夫30分钟, 并设置Session的lifetime也为30分钟.
    2. 本人为每个Session值增添Time stamp.
    3. 每次会见之前, 判别工夫戳.
    最初, 有同窗问, 为何要设置30分钟的过时工夫: 这个, 起首这是为了面试, 第二, 实践利用场景的话, 好比30分钟就过时的优惠?
    本文地址: http://www.laruence.com/2012/01/10/2469.html
我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,皮皮我的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。
再现理想 该用户已被删除
沙发
发表于 2015-2-4 01:46:05 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
不帅 该用户已被删除
板凳
发表于 2015-2-8 14:54:16 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
灵魂腐蚀 该用户已被删除
地板
发表于 2015-2-10 10:54:03 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
兰色精灵 该用户已被删除
5#
发表于 2015-2-18 19:54:46 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
变相怪杰 该用户已被删除
6#
发表于 2015-3-6 10:09:58 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
飘灵儿 该用户已被删除
7#
发表于 2015-3-12 23:58:28 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
乐观 该用户已被删除
8#
发表于 2015-3-18 10:39:07 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
小妖女 该用户已被删除
9#
发表于 2015-3-25 15:53:21 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
老尸 该用户已被删除
10#
发表于 2015-4-3 13:15:55 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
活着的死人 该用户已被删除
11#
发表于 2015-4-26 04:10:51 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
透明 该用户已被删除
12#
发表于 2015-4-26 16:37:53 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
柔情似水 该用户已被删除
13#
发表于 2015-5-2 02:35:04 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
精灵巫婆 该用户已被删除
14#
发表于 2015-5-4 04:01:50 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
再见西城 该用户已被删除
15#
发表于 2015-6-5 11:48:47 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
若相依 该用户已被删除
16#
发表于 2015-6-10 19:45:15 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
只想知道 该用户已被删除
17#
发表于 2015-6-17 10:52:12 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
若天明 该用户已被删除
18#
发表于 2015-6-20 09:35:08 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
爱飞 该用户已被删除
19#
发表于 2015-7-2 23:47:39 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
金色的骷髅 该用户已被删除
20#
发表于 2015-7-7 04:22:33 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-15 01:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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