荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Pazu (质变), 信区: Homepage
标  题: SESSION在PHP的使用
发信站: BBS 荔园晨风站 (Tue May  9 08:54:04 2000), 转信


PHP专题文章 - 类型:原创 - 作者:彭武兴 阅读人数: 579 人

整理编辑:中国PHP联盟

PHP4 中 session 的使用
来源:PHP殿堂

a
Session 一直是 PHP 拥护者心中的遗憾,在 PHP 还没支援 Session 之前,各方的 PHP
Session 解决方案一直出现。直到 PHP4 终於将 Session 纳入它的标准功能。从此 PHP
 在 Session 上终於可以抬得起头了。

Session 中文实在是很难形容,一般都译成时域。其实是在浏览某个网站时,在浏览器没
有关闭的情形之下,都保持在同一个 Session 下。因此,利用 Session 的特性,可以计
算使用者从进站到现在所浏览的页数,也可以在伺服器端记载使用一些资讯,避免这些资
讯传到使用者端。

说得更白话一些,例如电子商务网站中 B to C 的网站 (商家对客户),常会有手推车的
功能 (Cart)。此时,将手推车的资讯留在伺服器端,不但可以记录使用者采买的资料,
也不会让这些相关资讯在网路上被截收,甚至以假乱真。

PHP4 产生的 Session 数字,是利用 Hash 杂凑所产生的 32 位元组的文字或数字。因为
产生时,时间也是它的种子,因此这个 Session 数字在该网站具有独一无二的特性。

欲使用 Session 的功能,首先要准备 PHP4 的版本,若使用 PHP3 及之前的版本,只好
在网路上找其它的解决方案了。由於 Session 牵涉到值的传递,因此,在编译 PHP4 时?
在加上 --enable-trans-sid 的参数,也就是允许 SessionID 的参数在不同的网页之中
传递。

PHP4 在运作时,不会主动产生 Session 的值,除非呼叫了 Session 的函式:
session_start()。告诉 Web 伺服器後端,也就是 PHP4 的程式,启动 Session 的功能。
此时,PHP4 即产生唯一的 Session 代码,并依在 php.ini 中所设定
session.save_path 的值 (内定为/tmp),将这个代码写入档案中,档案的名称类似
sess_a5aa4678de539d45cf5e2e3309751f6a。

由於此时 Session 已经启动了,因此可以将变数写到 Session 中,让这些变数可以在不
同的 Homepage 中传递。Session 函式 session_register() 就是负责这样的工作。例如
下例 1.php 的 $abc 参数可以让 2.php 直接使用:

<?php
// 档名 1.php
session_start();
$abc="ABCDEFG";
$zzz="zzzzzzz";
session_register("abc");
session_register("zzz");
echo   "1.php";
?>


<?php
// 档名 2.php
session_start();
echo "2.php\n";
if   (isset($abc)) {
   echo   $abc;
   echo   $zzz;
}   else   {
   echo   "变数没传进来";
}
?>


范例中的 Session 存在 /tmp/sess_33e401e2bf67a2f73b64d48b2aae6c4d,其内容类似:

abc|s:7:"ABCDEFG";zzz|s:7:"zzzzzzz";


可以看到,向 Session 注册的变数,以 ; 分开。而变数的名称及变数值,都记录在其中
。有了 Session 之後,网页不再是各自独立的程式,而是整个网站就像一套整合的应用
程式。

Session 对网站间的数值传递而言是很方便,不过它和浏拦,若使用者将 Cookie 关掉,
就会法预期它的结果了。

实际的使用时,请注意变数的名称,不要和别的变数冲到,那就很难找出问题的原因。而
变数可以有很多个,反正都是记在 /tmp/sess_xxxxxxxxxx... 之中,不过不要太滥用
Session 而让程式变得过於复杂,日後就很难维护了。

Session 的函式当然不只上述的二个,其它有关 Session 的函式,可以参考笔者的书PHP
 BIBLE 中有关Session章节。

 --



            我和我的影子。

--
※ 修改:·DarkAkira 於 May  9 12:45:54 修改本文·[FROM: 192.168.29.1]
※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.0.189]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店