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

PHP
dedecms模版制作使用方法
dede3.1分页文字采集过滤规则详说(图文教程)
dede3.1分页文字采集过滤规则详说(图文教程)续二
dede3.1分页文字采集过滤规则详说(图文教程)续四
手把手教你使用DedeCms V3的在线采集图文教程
PHP实现MVC开发得最简单的方法:模型
php下用GD生成生成缩略图的两个选择和区别
Win2003服务器安全加固设置--进一步提高服务器安全性
[php] 我的微型论坛的简单教程[已完成]
phpMyAdmin下载、安装和使用入门教程
PHP 优化配置:加速你的VBB,phpwind,Discuz,IPB,MolyX
php+mysql开源XNA 聚合程序发布 下载
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
[PHP]经常用到的实用函数集合
php扩展ZF:Validate扩展
php开发工具之vs2005图解
PHP 5.0创建图形的实用方法完整篇

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 333 ::
收藏到网摘: 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