仓酷云

标题: PHP教程之session全教程 [打印本页]

作者: 第二个灵魂    时间: 2015-2-4 00:20
标题: PHP教程之session全教程
基础这个东西是个比较笼统的概念,如果你之前学习过c语言, c语言被认为是session|教程   1、session概述

session是甚么,刚入手下手我也不分明,非专业辞书翻译为会议,会议期。作个不太得当的比方吧(固然不得当,但意义倒是一样的),,session是你和网站之间的情感。
session在WEB手艺中占领十分主要的分量。因为网页是一种无形态的毗连法式,因而你没法得知用户的阅读形态。因而咱们必需
经由过程session纪录用户的有关信息,以供用户再次以此身份对web办事器供应请求时作确认,例如,咱们在某些网站中经常请求用户登录,
但咱们怎样晓得用户已登录了呢,假如没有session的话,登录信息是没法保存的,那岂不要让用户在每页网页中都要供应
用户名和暗码。
固然,session不但用于用户身份认证功效,还能够用于其它方面,今后咱们会提到的。
session用中文来注释就是会话期。一个会话期入手下手于用户输出一个站点的网址时,停止于他分开这个站点时。
session最早呈现在静态剧本言语Active Server Pages中,它的功效之壮大,是一句话没法说清晰的。
当php还在3.0版本时,session是它永久的痛。固然php具有履行速度快,利用天真,功效壮大等长处,但由于session的成绩,使
良多站点的开辟保持了php,最少我的老板是如许以为的。事先有良多php收费函数库供应在php3上完成session的计划,但都让人感到不正宗。
就好象你花好几千大洋买的手机却设置装备摆设一个很粗拙的草作的袋子一样,固然功效是一样的,但总让人感觉别扭。php4的呈现让php在session成绩上
有了翻身的时机。固然它的session完成还不是很幻想(次要是效力成绩),但究竟是它本人完成的,并且可以实践利用了。
那咱们用session干甚么呢,你说了半天,我用不上的话,你岂不有卖纸张之嫌。OK,咱们来看看session有甚么用:作过网站的人都有
如许的体味,在一页页面中的变量(在本章都指办事器端变量,下同)是不克不及鄙人一页顶用的,固然有一些举措可以完成,好比用form,urlstring等等
但有些关于用户来讲是不便利的,即便让form主动提交,但个中的延时在当今的收集情况下足以让人梗塞,而这两种办法都分明加大法式员的承当。假如你
正在开辟一个大型项目,那这些额定的承当是不克不及疏忽的。而有了session就好办了,session中注册的变量可以作为全局变量利用。甚么,全局变量?
好极了。如许一来,你晓得有甚么用了吧:最次要的用于用户身份认证,法式形态纪录,页面之间参数传递。
说了它这么半天的优点,你已动心了吧,先别乐意,它还出缺点呢:它是用文件保留的变量(固然效力不高了,固然可以用其余体例,但
很费事的),不克不及保留对象。与之绝对的是,asp中的session可以保留对象变量,用内存变量来保留session变量。但为何咱们还选用php呢,呵呵,
为何,你能从本书的入手下手看到这章,想必你也应当分明了吧,你还不分明,Faint,你再从头看起吧,我包管你成为PHP专家^_^。
session是如何完成的呢?呵呵,你必定觉得很深邃吧,我来告知你它的奥密。假如说只保留变量的话,良多读者都分明,这是很复杂的,
但后面咱们说过,http协定是一种无形态的毗连,你怎样晓得谁人变量是谁的,这个变量又是谁的呢?在session完成顶用cookie完成的。cookie
存在于客户端,也就是用户的机械中,外面保留着用户的session ID,也就是session号码,当用户的阅读器恳求办事器时把session ID也一同送到
办事器,如许办事器就能够辨认你是谁,也就能够把变量辨认开了。如许咱们就不难了解了,为何有时session会生效了。不信的话,你可以尝尝:
在IE的"东西"菜单上有"Internet选项"菜单,翻开后再选"平安"->"自界说级别",将平安设置中的"答应利用每一个对话cookies"设为禁用,再看看
session能不克不及用。这下分明了吧!不外php4在linux/unix平台上可以主动反省cookies形态,当cookies 不成用时,主动会把session ID
附带在url长进行传递。这是它在session方面比asp多的独一的长处了。

2、php3,4中session的完成

在php3中是没有session这类东东的,但咱们又需求,怎样办呢?别急,有良多人替你做了这些,这个中最着名的要算phplib了。你可以去国外下
载,也能够上国际大局部php站点下载。咱们要做的第一件事是让phplib和php3联合在一同使它能任务。为了能完成这方面的功效,咱们需求先装置phplib。
随着我来做,很轻易的(以下办法在win2000+php3.0.16+apache1.3.12+phplib7.2c+mysql3.23.21 for win32 上经由过程)
phplib最根基的功效包含用户认证,Session办理,权限及数据库的笼统化。
如何利用phplib来完成session功效呢?
1、起首你将phplib解开,外面有一个目次叫"php",将这个目次拷贝到apache的装置目次下。以下以笔者的机械为例:
我的apache装置在d:apache 目次下,我将下面的"php"目次拷贝到d:apache,并将phplib下的pages目次下的文件和目次一同拷贝到
d:apachehtdocs下,注重不带目次自己。
phplib的类库需求依据体系停止初始化,你可以修正local.inc文件,个中包括着一些根基参数,你可以依据本人机械的实践情形来停止修正。
将d:apachephpprepend.php3文件中的一段法式改成以下模样:

if (!isset($_PHPLIB) or !is_array($_PHPLIB)) {
$_PHPLIB["libdir"] = "d:/apache/php/"; //这儿改成你放phplib下php目次的途径
}

然后将d:apachephplocal.inc文件改以下:

class DB_Example extends DB_Sql {
var $Host = "localhost";//你的mysql数据库地点主机名
var $Database = "test";//数据库名
var $User = "root";//数据库用户名
var $Password = "";//数据库用户口令
}

最初一步履行解开的phplib目次中的stuff目次下的create_database.mysql文件,生成初始表。
咱们申明一下phplib的任务道理,每个利用phplib的页面起首必需可以找到运转phplib所必需类库文件,咱们可以在php3.ini中设置auto_prepend
变量来撑持,phplib分发包中包括一个prepend.php3文件,将auto_prepend指定为"d:/apache/php/prepend.php3"(带引号)后,各页面就会主动包括phplib类库,咱们还可以
将phplib类库地点目次加进include变量中,以即可以找到这些文件,固然,最苯的举措就是指定phplib的相对途径,这可不是个好主张,可移植性太差!
第二步,每个利用phplib的页面中,你必需起首挪用page_open函数停止初始化。这会告知phplib,你如今或未来会用到形态保留。一个典范的
page_open例子以下:
  学校并没有那么多的时间可以让我们在实际开发上面。
作者: 海妖    时间: 2015-2-4 11:53
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 老尸    时间: 2015-2-6 03:41
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者: 不帅    时间: 2015-2-6 16:41
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 莫相离    时间: 2015-2-17 08:26
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 兰色精灵    时间: 2015-3-5 11:29
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 小女巫    时间: 2015-3-8 18:55
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 透明    时间: 2015-3-11 18:37
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者: 若相依    时间: 2015-3-19 07:31
爱上php,他也会爱上你。
作者: 飘飘悠悠    时间: 2015-3-19 16:50
爱上php,他也会爱上你。
作者: 只想知道    时间: 2015-3-23 00:17
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 山那边是海    时间: 2015-3-29 01:54
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 蒙在股里    时间: 2015-4-3 07:52
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
作者: 再现理想    时间: 2015-4-4 09:35
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
作者: 简单生活    时间: 2015-4-10 21:22
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 金色的骷髅    时间: 2015-4-16 04:31
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
作者: 乐观    时间: 2015-4-16 21:39
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 谁可相欹    时间: 2015-4-22 03:16
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者: 小妖女    时间: 2015-4-22 08:46
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、




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