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

PHP
一贴学会PHP 新手入门教程
用PHP的ob_start() 控制您的浏览器cache
谈谈新手如何学习PHP 默默经典版本
黑夜路人出的几道php笔试题
一些 PHP 管理系统程序中的后门
用php获取本周,上周,本月,上月,本季度日期的代码
PHP 简单数组排序实现代码
PHP 多维数组排序实现代码
php 全局变量范围分析
php_xmlhttp 乱码问题解决方法
PHP 数组学习排序全接触
php Sql Server连接失败问题及解决办法
PHP 翻页 实例代码
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
PHP 5.3.0 安装分析心得
php 生成WML页面方法详解
php 取得瑞年与平年的天数的代码
php empty函数 使用说明
php natsort内核函数浅析
PHP 源代码分析 Zend HashTable详解

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


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

       长沙发上的对话(四)
  译者:limodou
  
  有很多给猫换肤的办法...
  
    当然,如果你的站点仍然运行着PHP3,你就无法使用迄今为止的任何代码。但是不要沮丧 -- 有另一种提供给PHP3用户的解决办法。它就叫做PHPLIB,它提供了一组有用的类,允许在你的PHP3中增加对session的管理。可以按照包中的指示进行安装,你还需要修改"local.inc"配置文件来创建你自已的类。
    象在PHP4中一样,在每次你初始化一个session时,你需要预先调用page_open()函数。PHPLIB返回一个缺省的名为Example_Session的类 -- 你可以在"local.inc"文件中修改这个值 -- 它将用在下面的例子中:
  
  
  <?php
  
  page_open(array("sess" => "Example_Session"));
  
  ?>
  
    在任何发给浏览器的输出之前调用page_open()非常重要。为了注册你的session变量,下面的语句可以完成这个工作。
  <?php
  
  //初始化一个session page_open(array("sess" => "Example_Session"));
  
  //注册一个session变量 $sess->register('username');
  
  ?>
  
    每一个页面也必须包含相应的page_close()函数,用来确认所以的改变量被保存在数据库中。
  
  <?php
  
  page_close();
  
  ?>
  
    除了这些,大部分的代码都是一样的。看一下以前例子的PHPLIB版本:
  
  <?php
  
  
  //初始化一个session page_open(array("sess" => "Custom_Session"));
  
  //注册session变量 - 注意语法
  $sess->register('username');
  $sess->register('stock1');
  $sess->register('stock2');
  $sess->register('stock3');
  $sess->register('stock4');
  
  //连接MySQL $db = mysql_connect("someserver.com", "tom", "jones");
  
  //选择数据库 mysql_select_db("stock_db",$db);
  
  //使用SQL查询数据库
  $query = "select stock_pref1,stock_pref2,stock_pref3,stock_pref4
  from user_info where username='$username'";
  
  $result = mysql_query($query,$db);
  
  // 从数据库中取股票代码,并赋值给session变量
  list($stock1,$stock2,$stock3,$stock4) = mysql_fetch_row($result);
  
  //输出
  echo "Hi $username!<br>";
  echo "Your selected stocks are:<br>";
  echo "$stock1<br>";
  echo "$stock2<br>";
  echo "$stock3<br>";
  echo "$stock4<br>";
  
  //生成页面其余代码
  
  //将数据保存到数据库中
  
  page_close();
  ?>
  
    如你所见,一旦你放下PHP4版本,理解PHPLIB版并不因难 -- 当你知道了PHP4中的对session的内部支持很大程度上基于PHPLIB模块你就不会感到奇怪了。如果你感兴趣,PHPLIB实际上在对session的管理中,对身份认证和权限的类更加深入,它允许你在基于数据库的认证管理上,给一个用户允许或禁止处理的权力 -- 可以看一下文档中关于如何使用这些特性的例子。
  
    PHPLIB也提供一些有趣的内建函数。
  
  unregister(variable)
    允许你从一个特别的session中注销一个变量。注意在那种情况下,变量并没有被删除,可是它的值将会在页尾丢失,因为它不再被保存到数据库中。
  
  <?php
  
  page_open(array("sess" => "Example_Session"));
  
  //注册一个变量 $sess->register('username');
  
  //检查是否它已经被注册了
  if($sess->is_registered('username'))
  {
  echo "Variable \"username\" is registered!<br>";
  }
&nb