|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
长沙发上的对话(二) 译者:limodou・ 第一个session 关于演示session是如何工作的标准例子之一就是点击计数的应用 -- 这是一个简朴的基于session的计数器,在你第一次访问一个web页面时初始化一个变量,每一次当你重新装入这个页面时增加它的计数。代码如下: <?php //初始化一个session session_start(); //注册一个session变量 session_register(\\'counter\\'); ?> 在PHP4中每一个session都通过调用session_start()函数开始,这个函数检查一个session是否存在,假如不存在则创建一个新的。接着,用session_register()函数来注册一个变量,它将生存在整个session中 -- 在上面的例子中,变量名为"counter",并且没有给它赋任何值。 现在,让我们在上面的例子中加几行代码,点击计数将开始工作了: <?php //初始化一个session session_start(); //注册一个session变量 session_register(\\'counter\\'); //增加计数器 $counter++;echo("You have visited this page $counter times! Don\\'t you have anything else to do, you bum?!"); ?> 试一试它!当你每一次重装这个页面时,计数器的值都在增加,这个说明了在session中变量是如何被保存的。 为什么为发会生这样的情况呢?唔,每次一个session被创建,一个session的cookie[叫做PHPSESSID]会在客户系统中被创建,并且被赋了一个随机数;同时,在服务器端一个相似的入口被创建,它包含着在session中注册过的变量。在客户与服务器之间的通讯就通过这个有一样命名的session的标识号(id)来实现,这样就可以在整个session期间保存不同的变量。 让我们再看一下复杂一点的吧?看这个例子,它演示了一个使用session变量的计时器,它将告诉你在重新装入页面时过了多长的时间。 <?php session_start(); //session变量用于保存计数器session_register(\\'counter\\'); //session变量用于保存最后装入的时间值 //这个值被保存以便比较两次的不同session_register(\\'timeAtLastLoad\\'); //当前时间$timeNow = time(); //增加计数$counter++; //计算两次时间间隔$timeLapsed = $timeNow - $timeAtLastLoad; //显示信息if($counter > 1) { echo "<b>It\\'s been $timeLapsed seconds since you last viewed this page.</b>"; } else { echo "<b>First time here? Reload this page to see how the session works!</b>"; } $timeAtLastLoad = $timeNow; ?> 返回类别: 教程 上一教程: PHP中上传大体积文件时需要的设置 下一教程: 网站当前的在线人数 您可以阅读与"长沙发上的对话(二)"相关的教程: · 长沙发上的对话(一) · 长沙发上的对话(三) · 再点一次Active的名,我把你的函数功能扩充了一下,嘻嘻,现在能以树型结构列出整个磁盘上的文件啦。 · 第二节--PHP5 的对象模型 -- Classes and Objects in PHP5 [2] · 第二节--PHP5 的对象模型 -- PHP5的类与对象 [2] |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |