二、使用PHP本身的对话
,,不支持对话一直是PHP最大的缺憾之一。
只要用户在浏览你的网站,你就可以利用对话维护与特定用户有关的变量,而无需建立多个cookie、使用隐藏表格字段或将信息存储在数据库中。
在一个网页上启动一个对话,就会使PHP引擎知道你想启动一个对话(如果还没有启动)或者继续当前的对话:
session_start();
启动一个对话将通过cookie向用户发送一个识别字符串(例如940f8b05a40d5119c030c9c7745aead9),在服务器端,会创建一个与识别字符串匹配的临时文件,例如sess_940f8b05a40d5119c030c9c7745aead9,这个文件中包含的对话变量以及它们的值。
用来显示对话的作用的最常见的例子是访问计数器。启动PHP模块,确保PHP代码是文件的第一行,在PHP代码之前不要有空格、HTML代码和其他的代码。因为对话会发送一个头部,因此如果在session_start()之前有空格和HTML代码,就会得到一个出错信息。
<?
//如果还不存在一个针对某用户的用户,则启动一个对话:
session_start();
然后一个名字为count的变量:
session_reGISter(&39;count&39;);
一个对话变量后,只要对话存在,名字为count的变量也就存在。现在,count变量还没有被赋值,如果对它执行加1操作,它的值就变为了1。
$count++;
把上述内容综合在一块儿,如果还没有启动一个对话,就会启动一个对话;如果不存在一个对话id,就为用户指定一个好了,一个名字为$count的变量,对$count执行加1操作表示用户已经首次访问了该网页。
要知道用户在当前的对话中访问本页面的次数,只要显示$count变量的值即可:
echo"<PYou&39;vebeenhere$counttimes.</p";
全部的访问计数器代码如下所示:
<?
session_start();
session_register(&39;count&39;);
$count++;
echo"<PYou&39;vebeenhere$counttimes.</p";
?
如果重新加载上述的代码文件,就会发现变量count的值增加了1,很酷吧。
还可以在对话中一个数组变量,假设我们了一个名字为$faves的变量:
$faves=array(&39;chocolate&39;,&39;coffee&39;,&39;beer&39;,&39;Linux&39;);
可以象一个简单变量那样一个数组变量:
session_register(&39;faves&39;);
引用数组变量与引用简单变量没有什么二样,如果一个用户在网页上指出在生活中的爱好时,可以把他的爱好到一个被称作$faves的数组变量中,然后可以在另一个网页中很方便地把这些爱好显示出来:
<?
session_start();
echo"Myuserlikes:
<ul";
while(list(,$v)=each($faves)){
echo"<li$v";}
echo"</ul";
?
然后你就得到了一个关于用户爱好的清单。
对话变量不能被查询字符串覆盖,也就是说我们不能输入yourdomain/?count=56给变量$count指定一个新值,这一点对于安全很重要:只能在服务器端的代码中删除一个没有的对话变量。
如果要完全删除一个对话变量,首先需要从系统中注销它:
session_unreGISter(&39;count&39;);
要完全删除一个对话变量的代码是非常简单,如下所示:
session_destroy();
使用对话变量可以减少访问数据库的频率,使代码更加清晰,而且可以减少对用户发送的cookie的数量,它是最简单的方法了。
三、文件是我们的朋友
无论你在开发的网站规模的大小,都应该意识到代码重用的重要性,无论这些代码是HTML、还是PHP代码。例如,你必须至少每年改变一次包含版权信息的页脚,如果你的网站含有1000个页面,每年修改一次也是个很烦人的事儿。
在PHP中,至少有几个函数可以帮助你实现代码重用的目的,所使用的函数取决于你所重用的代码,主要的函数有:
*include()andinclude_once()
*require()andrequire_once()
include()函数包含并
php培训php高级技巧全放送 来自淘豆网m.daumloan.com转载请标明出处.