PHP脚本的8个技巧(2)
时间:2009-6-2 10:23:20 作者: 来源:
 
会话用法
  
php 4.0有一个一直为人所期待的特性,这就是php的会话(session)支持。相比之下,php 3.0的用户则不得不使用第三方的程序库或完全不能具备这项功能。缺乏会话支持能力是php最大的缺陷之一,也是它最受人指摘的地方。不过,随着会话支持从早期测试版本的php 4.0开始就成为后者的一部分,这个障碍也荡然无存了。
有了会话支持,你就可以在用户访问网络站点期间维持用户特定的变量而无须象现在这样:设置多个cookie、使用隐蔽表单域或在你可能经常要连结的一个数据库内存储信息等。
在一个页面上启动会话就是告诉php引擎:你或是要开始一个会话(如果先前没有)或是继续目前的会话:
session_start();
启动一个会话将通过cookie向用户发送一个标识字符串(比如940f8b05a40d5119c030c9c7745aead9);在服务器端则会创建一个与此相匹配的临时文件,在以上例子中,其名称则是这个样子:sess_940f8b05a40d5119c030c9c7745aead9。该文件包含了注册的会话变量及其赋值。
用户访问计数器可谓使用会话的最常见实例:
启动你的php模块,保证php代码是文件的第一行:没有空白、没有html输出等等。这是因为,当会话函数发出一个文件头的时候,如果你在session_start()函数之前发送了空白或者html代码,系统即会报错。
<?
// if a session does not yet exist for this user, start one
session_start();
接下来,注册一个名为count的变量。
session_register('count');
注册变量就等于告诉了php:只要会话存在,一个名叫count的变量也就同时存在。目前这个变量还没有赋值。不过,如果你对它进行加1运算的话,该值即可被赋值为1:
$count++;
把以上各行代码一起考虑,实际上你已经启动了一个会话(如果先前没有)、为某个用户分配了会话id、注册了名为count的变量并把$count加1以表示用户首次访问页面:
要显示用户在当前会话下访问页面的次数,你只要打印出$count的值即可:
echo "<p>you've been here $count times.</p>";
整个访问计数器代码如下所示:
<?
session_start();
session_register('count');
$count++;
echo "<p>you've been here $count times.</p>";
?>

 

 

 

 

如果你重载以上脚本,你可以观察到计数值增加了。有意思吧?
你还可以在会话中注册数组。假设你有一个名为faves = array ('chocolate','coffee','beer','linux');
你可以象其他单个变量一样注册该数组:
session_register('faves');
索引数组和索引其他单变量没有什么差别,比如$faves这样。如果你的用户想在web站点的一个页面上展示自己的爱好,那么你完全可以把他喜欢的东西注册为一个名为$faves会话变量,然后你可以在其他页面上把这些值打印出来:

 

<?
session_start();
echo "my user likes:
<ul>";
while (list(,faves)) {
echo "<li>$v"; }
echo "</ul>";
?>

 

 

 

 

 

这就是你要得到的:用户爱好的漂亮列表。
会话变量不能被查询字符串所覆盖,这就是说,你不能键入http:///www.yourdomain.com/yourscript.php?count=56 这样的指令为注册会话变量$count分配新值。这一点对安全而言是非常重要的:你只能在服务器端脚本上修改或者删除(未注册的)会话变量。
如果你想完全删除某个会话变量,你可以从系统中取消注册该变量:
session_unregister('count');
彻底删除某个会话,比如按下logout按钮就是这样的例子,那么你可以写下如下的代码:
session_destroy();
使用会话来存储变量值可以让我们免于编写数据库处理代码的痛苦,这样也就不会过度增加对系统的负载,同时也减少了对专有数据库语法的使用范围,再说,你也不再非得向访问站点的用户发送一大堆cookie了。而现在呢——只需要一个cookie、一个变量就全部搞定了,真是一滴水就映出了全部光辉!实在是不能比这更简单的了。


上一篇:
下一篇:
 
网页模板 网站模板 网站建设 网页设计 网页设计师兼职 自助建站 ...
网站魔坊,网页模板,网站模板,免费网页模板,在线模板设计,免费建站,门户网站搭建,建站,企业网站,奇思网络,奇思,智能建站,自助建站,拖动建站,网站建设,网页设计,在线设计模板
www.wzmof.com/ 47K 2009-5-21
 
商巢...
商巢是一个真实的商业交友社区、为用户提供交友、贸易、社区、建站等服务;临渊慕鱼,不如退而结网!商巢结网行动
www.ncooo.com/ 47K 2009-5-21
 
商巢创业 门户创业 商人网络家园 魔坊建站 商业交友
商巢下的门户,门户又一独立实体与商巢合作,由商巢负责技术的更新以及硬件的支持,门户负责自己领域的市场推广以及相应的售后服务即可。 打破以往门户需要源源不断的技术、硬件投入模式,盈利模式清晰 行业门户以及门户下企业网站由网站魔坊...
mhcy.ncooo.com/ 36K 2009-5-14
 
奇思网络技术 网站建设 深圳网站建设
中小外贸企业做电子商务,需要从两点技术突围 08-01 企业网站建设 提供网站策划、网站建设、数据库开发至网络营销全套解决方案。能针对客户所处行业,结合营销特征量身订做高质量网站建设方案。 网站推广 怎样使网站的投资得到回报?这需要经验...
www.qsnet.com.cn/ 48K 2009-4-2
 
深圳艺术网
深圳艺术网,中国艺术网,中国当代艺术网,广东当代艺术网,广东艺术网,南方当代艺术网,深圳美术网,深港美术网,深港艺术网,深港当代艺术网,杜应红,深圳当代艺术创作库,深圳创库,深圳美术,深圳艺术,深圳收藏,深圳艺术收藏,深圳音乐网,深圳舞蹈...
www.szarts.cn/ 119K 2009-6-9
 
网页设计也通过人脉赚钱-技术传播
 
网页设计114 -打造中国网页设计、网站建设技术信息学习、交流、互动平台
                         打造网页设计师兼职创业平台中心