PHP对话的具体使用技巧分享

开发 后端
我们在建设网站的时候,可以利用PHP对话维护用户的变量,这一操作将不会建立太多的cookie。当启动一个PHP对话时,就会使PHP引擎知道你想启动一个对话。

对于PHP来说,***的遗憾是它对对话并不支持。更新到PHP4.0的时候,这一遗憾被填补上了。今天我们就来具体了解一下PHP对话的应用方式,希望通过本文介绍的内容能为新手们带来新的知识点,充实我们的知识库。 

#t#只要用户在浏览你的网站,你就可以利用PHP对话维护与特定用户有关的变量,而无需建立多个cookie、使用隐藏表格字段或将信息存储在数据库中。

在一个网页上启动一个对话,就会使PHP引擎知道你想启动一个对话(如果还没有启动)或者继续当前的对话:

session_start();

启动一个PHP对话将通过cookie向用户发送一个识别字符串(例如940f8b05a40d5119c030c9c7745aead9),在服务器端,会创建一个与识别字符串匹配的临时文件,例如sess_940f8b05a40d5119c030c9c7745aead9,这个文件中包含注册的对话变量以及它们的值。

用来显示对话的作用的最常见的例子是访问计数器。启动PHP模块,确保PHP代码是文件的***行,在PHP代码之前不要有空格、HTML代码和其他的代码。因为对话会发送一个头部,因此如果在session_start()之前有空格和HTML代码,就会得到一个出错信息。

全部的访问计数器代码如下所示:

  1. <?   
  2.  
  3.   session_start();   
  4.  
  5.   session_register('count');   
  6.  
  7.   $count++;   
  8.  
  9.   echo "<P>You've been here $count times.</p>";   
  10.  
  11.   ?>   

如果重新加载上述的脚本文件,就会发现变量count的值增加了1,很酷吧。

还可以在PHP对话中注册一个数组变量,假设我们注册了一个名字为$faves的变量:

$faves = array ('chocolate','coffee','beer','linux');

可以象注册一个简单变量那样注册一个数组变量:

session_register('faves');

引用数组变量与引用简单变量没有什么二样,如果一个用户在网页上指出在生活中的爱好时,可以把他的爱好注册到一个被称作$faves的数组变量中,然后可以在另一个网页中很方便地把这些爱好显示出来:

  1. <?   
  2.  
  3.   session_start();   
  4.  
  5.   echo "My user likes:   
  6.  
  7.   <ul>";   
  8.  
  9.   while (list(,$v) = each ($faves)) {   
  10.  
  11.   echo "<li>$v"; }   
  12.  
  13.   echo "</ul>";   
  14.  
  15.   ?>  

然后你就得到了一个关于用户爱好的清单。

PHP对话变量不能被查询字符串覆盖,也就是说我们不能输入http:///www.yourdomain.com/yourscript.php?count=56给注册变量$count指定一个新值,这一点对于安全很重要:只能在服务器端的脚本中删除一个没有注册的对话变量。

如果要完全删除一个对话变量,首先需要从系统中注销它:

session_unregister('count');

要完全删除一个对话变量的脚本是非常简单,如下所示:

session_destroy();

使用PHP对话变量可以减少访问数据库的频率,使代码更加清晰,而且可以减少对用户发送的cookie的数量,它是最简单的方法了。

责任编辑:曹凯 来源: 博客大巴
相关推荐

2009-12-01 10:50:45

PHP函数requir

2009-12-01 14:26:19

PHP函数ob_sta

2009-11-23 18:47:51

PHP中用header

2009-12-01 19:23:22

PHP缓存技术

2009-11-26 09:18:56

PHP函数参数传递方法

2009-11-27 09:30:58

PHP函数mb_str

2009-12-07 14:29:08

PHP array_w

2009-12-09 17:33:22

PHP性能优化

2011-07-11 10:24:09

PHP

2009-12-02 15:50:41

PHP抓取网页内容

2009-12-10 10:24:24

PHP写入文件

2009-12-08 14:00:11

PHP函数microt

2009-12-10 10:30:31

PHP删除复制文件

2009-12-10 17:27:39

PHP操作Cookie

2009-12-11 15:35:50

PHP弹出对话框

2009-12-04 14:41:11

PHP数组变成JSON

2009-12-02 10:01:04

PHP乱码问题

2009-12-28 10:40:13

WPF调用Winfor

2010-01-28 15:26:33

Android调用平台

2010-02-25 15:25:19

WCF通道
点赞
收藏

51CTO技术栈公众号