《PHP脚本的10个技巧2.pdf》由会员分享,可在线阅读,更多相关《PHP脚本的10个技巧2.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PHP 脚本的脚本的 10 个技巧个技巧 2会话用法PHP 4.0 有一个一直为人所期待的特性,这就是 PHP 的会话(session)支持。相比之下,PHP 3.0 的用户则不得不使用第三方的程序库或完全不能具备这项功能。缺乏会话支持能力是 PHP 最大的缺陷之一,也是它最受人指摘的地方。不过,随着会话支持从早期测试版本的PHP 4.0 开始就成为后者的一部分,这个障碍也荡然无存了。有了会话支持,你就可以在用户访问网络站点期间维持用户特定的变量而无须象现在这样:设置多个 cookie、使用隐蔽表单域或在你可能经常要连结的一个数据库内存储信息等。在一个页面上启动会话就是告诉 PHP 引擎:你或
2、是要开始一个会话(如果先前没有)或是继续目前的会话:session_start();启动一个会话将通过 cookie 向用户发送一个标识字符串(比如940f8b05a40d5119c030c9c7745aead9);在服务器端则会创建一个与此相匹配的临时文件,在以上例子中,其名称则是这个样子:sess_940f8b05a40d5119c030c9c7745aead9。该文件包含了注册的会话变量及其赋值。用户访问计数器可谓使用会话的最常见实例:启动你的 PHP 模块,保证 PHP 代码是文件的第一行:没有空白、没有 HTML 输出等等。这是因为,当会话函数发出一个文件头的时候,如果你在 sess
3、ion_start()函数之前发送了空白或者 HTML 代码,系统即会报错。/if a session does not yet exist for this user,start onesession_start();接下来,注册一个名为 count 的变量。session_register(count);注册变量就等于告诉了 PHP:只要会话存在,一个名叫 count 的变量也就同时存在。目前这个变量还没有赋值。不过,如果你对它进行加 1 运算的话,该值即可被赋值为 1:$count+;把以上各行代码一起考虑,实际上你已经启动了一个会话(如果先前没有)、为某个用户分配了会话 id、注册了名
4、为 count 的变量并把$count 加 1 以表示用户首次访问页面:要显示用户在当前会话下访问页面的次数,你只要打印出$count 的值即可:echo Youve been here$count times.;整个访问计数器代码如下所示:session_start();session_register(count);$count+;echo Youve been here$count times.;?如果你重载以上脚本,你可以观察到计数值增加了。有意思吧?你还可以在会话中注册数组。假设你有一个名为$faves 的数组:$faves=array(chocolate,coffee,beer,l
5、inux);你可以象其他单个变量一样注册该数组:session_register(faves);索引数组和索引其他单变量没有什么差别,比如$faves 这样。如果你的用户想在 Web 站点的一个页面上展示自己的爱好,那么你完全可以把他喜欢的东西注册为一个名为$faves 会话变量,然后你可以在其他页面上把这些值打印出来:session_start();echo My user likes:;while(list(,$v)=each($faves)echo$v;echo;?这就是你要得到的:用户爱好的漂亮列表。会话变量不能被查询字符串所覆盖,这就是说,你不能键入http:/ 这样的指令为注册会话
6、变量$count 分配新值。这一点对安全而言是非常重要的:你只能在服务器端脚本上修改或者删除(未注册的)会话变量。如果你想完全删除某个会话变量,你可以从系统中取消注册该变量:session_unregister(count);彻底删除某个会话,比如按下 Logout 按钮就是这样的例子,那么你可以写下如下的代码:session_destroy();使用会话来存储变量值可以让我们免于编写数据库处理代码的痛苦,这样也就不会过度增加对系统的负载,同时也减少了对专有数据库语法的使用范围,再说,你也不再非得向访问站点的用户发送一大堆 cookie 了。而现在呢只需要一个 cookie、一个变量就全部搞定了,真是一滴水就映出了全部光辉!实在是不能比这更简单的了。来自: zqct