当前位置: 首页 > 图文教程 > 网络编程 > PHP > 长沙发上的对话(二)

PHP
php 多线程上下文中安全写文件实现代码
PHP类的使用 实例代码讲解
用php实现让页面只能被百度gogole蜘蛛访问的方法
php 学习笔记
PHP编程过程中需要了解的this,self,parent的区别
php 操作excel文件的方法小结
使用PHP获取网络文件的实现代码
PHP 巧用数组降低程序的时间复杂度
php下将XML转换为数组
php 文件上传代码(限制jpg文件)
php 无极分类(递归)实现代码
PHP 采集获取指定网址的内容
PHP 将图片按创建时间进行分类存储的实现代码
PHP 存储文本换行实现方法
PHP 批量更新网页内容实现代码
用PHP查询搜索引擎排名位置的代码
用php实现的获取网页中的图片并保存到本地的代码
php实现首页链接查询 友情链接检查的代码
处理php自动反斜杠的函数代码
php实现的遍历文件夹下所有文件,编辑删除

PHP 中的 长沙发上的对话(二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 329 ::
收藏到网摘: n/a

       长沙发上的对话(二)
  译者: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;
  
  ?>