session全教程

session|教程

一、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多的唯一的优点了。

二、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功能呢?
一、首先你将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例子如下:

时间: 2024-08-22 10:04:05

session全教程的相关文章

session全教程(二)

session|教程 二.php3,4中session的实现 在php3中是没有session这种东东的,但我们又需要,怎么办呢?别急,有很多人替你做了这些,这其中最有名的要算phplib了.你可以去国外下载,可以上国内大部分php站点下载.我们要做的第一件事是让phplib和php3结合在一起使它能工作.为了能实现这方面的功能,我们需要先安装phplib.跟着我来做,很容易的(以下方法在win2000+php3.0.16+apache1.3.12+phplib7.2c+mysql3.23.21

session全教程(一)

session|教程 一.session概述 session是什么,刚开始我也不明白,非专业词典翻译为会议,会议期.作个不太恰当的比喻吧 (虽然不恰当,但意义却是一样的),session是你和网站之间的感情. session在WEB技术中占有非常重要的份量.由于网页是一种无状态的连接程序,因此你无法得知用户的浏览状态.因此我们必须 通过session记录用户的有关信息,以供用户再次以此身份对web服务器提供要求时作确认,例 如,我们在某些网站中常常要求用户登录, 但我们怎么知道用户已经登录了呢,

session全教程(三)

三.session应用举例 以下这些例子片断仅供参考,你可以定制也可以不定制session,随你便 (1)用于用户认证 <? session_start(); $dbh=MySQL_connect("localhost:3306","xxxx","xxxx"); MySQL_select_db("znsoft");//选择数据库 $query="selectuseridfromreguserwhereuseri

linux下配置web+ftp服务器全教程(一)

最近公司上了个服务器,顺便整理下各部门的网站,搞的异常忙碌,今天终于闲下来了整理一下这几天遇到的问题和一些想法,今天首要写的是一篇完整版的教程:linux(fedora.redhat)下配置web+ftp服务器.相信很多站长到你在更换vps或者独立服务器的时候都会用到,收藏下来备用吧. 一.环境需求 根据不同的网站负载(访问量强度)选择适合自己的服务器或者vps,特别是当你申请到一台服务器的时候,首要做的就是寻找一家可靠的服务器托管机房,将服务器托管到里面,使服务器可以在公网上保持一个较好的访问

php中的session完全教程第1/2页_php基础

一.session概述 session是什么,刚开始我也不明白,非专业词典翻译为会议,会议期.作个不太恰当的比喻吧 (虽然不恰当,但意义却是一样的),session是你和网站之间的感情. session在web技术中占有非常重要的份量.由于网页是一种无状态的连接程序,因此你无法得知用户的浏览状态.因此我们必须 通过session记录用户的有关信息,以供用户再次以此身份对web服务器提供要求时作确认,例 如,我们在某些网站中常常要求用户登录, 但我们怎么知道用户已经登录了呢,如果没有session

给 Java 学习者的超全教程整理

Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 网上有很多 Java 教程,无论是基础入门还是开发小项目的教程都比比皆是,可是系统的很少,对于Java 学习者来说找到系统.完整.可学性较强的教程其实并不是那么容易.实验楼上有很多 Java 教程,从基础入门.J2SE 开发.SSH 框架到实战项目都有,因此,这里就把这些课程总结一下,希望对 Java 学习者有所帮助~ 一.Java基础 Java 基础不必多说了,下面的5门课程就可以带你动手学习,入门Java. Ja

php session 入门教程

1.什么是session session,中文名称为会话,它是指一类用来在客户端和服务器间保持会话连接状态的解决方案,同时 由于其的广泛应用性,php教程作为一种web开发语言,当然也是完全的支持session机制. 具体针对web网站来说,session指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的时间,由 此可知,session实际上是一个特定的时间概念. 通过使用session,我们就可以在网站的上下文不同页面间传递变量,将session用于用户身份认证, 程序状态记录等,最常见的

网络人企业版安装、设置全教程

远程控制类软件大红人--网络人(Netman)远程控制软件,凭借强大的内网穿透技术,和良好的远程控制体验,在各大下载网站下载人气一路飙升,而网络人(Netman)企业版,更是深受中小企业管理者青睐.监控职员办公电脑是否道德这里且不作讨论,不少企业管理者表示,监控职员办公电脑,可以有效提高办公效率,确是不争的事实.为了让更多人能够轻松使用,在此献上网络人(Netman)企业版从下载安装,到程操作的完整教程. 下载地址 旗舰版下载:http://netman123.cn/down/netman_ul

用word做禁止吸烟标志牌全教程

  第一步:新建一个空白word文档,设置页面布局为横向. 第二步:插入一个文本框,我们要在里面写上文字和插入图片. 第三步:在其中一个文本框里插入我们用Photoshop做好的禁止吸烟的图片. 第四步:在另一个文本框里插入"艺术字" 第五步:调整"艺术字"的大小和样式.我这里加了一个倒影效果,你可以根据自己的喜好设置. 三联推荐:点击免费下载最新版WPS办公软件    >>查看更多电脑教程 第六步:设置插入图片和文字的文本框边框的样式为无线条,这样就没