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

PHP
PHP 执行系统外部命令 system() exec() passthru()
最新的php 文件上传模型,支持多文件上传
php 静态页面中显示动态内容
数据库查询记录php 多行多列显示
谈PHP生成静态页面分析 模板+缓存+写文件
PHP 各种排序算法实现代码
PHP nl2br函数 将换行字符转成 <br>
php 分页原理详解
Discuz 模板语句分析及知识技巧
php win下Socket方式发邮件类
怎样去阅读一份php源代码
建站常用13种PHP开源CMS比较
php xml留言板 xml存储数据的简单例子
PHP 开源AJAX框架14种
PHP 替换模板变量实现步骤
PHP has encountered an Access Violation at 7C94BD02解决方法
php 正则匹配函数体
php 文件夹删除、php清除缓存程序
php download.php实现代码 跳转到下载文件(response.redirect)
PHP类(Class)入门教程

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


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

       长沙发上的对话(三)
   译者:limodou
  市场游戏
  
    现在你已经知道了基本的东西,再来点复杂的吧,演示一个现实生活中的session 应用。让我们假设一下,你有一个金融门户,它允许它的用户选择四支股票,然后显示每支股票的当前市场价格,并且在每一页上显示用户在这个站点上的过程。
  
    在下面的例子中,我们假定用户已经被验证过身份并且登录到站点上来了。我们使用了MySQL 数据库,里面有一个名为user_info的表,用于存储用户的四支股票和唯一用户名。一旦一个session被初始化了,我们注册变量保存用户名和四支股票,然后同数据库进行连接,取回值并显示在页面上。
  
    代码如下:
  
  <?php
  
  //初始化一个session session_start();
  
  //注册session变量
  
  //用户名
  session_register('username');
  
  //选择的股票变量
  session_register('stock1');
  session_register('stock2');
  session_register('stock3');
  session_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>";
  
  // code to generate rest of page
  
  ?>
  
    PHP4有许多与session相关的函数 -- 大部分都不需要解释,把他们列在下面。
  
  session_destroy(): 释放所有的session数据(当一个用户从一个站点注销时非常有用,你需要释放掉在他访问期间的所创建的所有变量)。
  
  session_name():设置或读取当前session的名字。
  
  session_id():设置或读取当前session的id值。
  
  session_unregister(session_variable_name):从一个特别的session注销一个变量。
  
  session_is_registered():检查是否一个session变量已经注册了。
  
  例如:
  
  <?php
  
  session_start();
  
  if(session_is_registered(username))
  {
  echo "A session variable by the name \"username\"
  already exists";
  }
  else
  {
  echo "No variable named \"username\" registered yet.
  Registering...";
  session_register(username);
  }
  
  ?>
  
  session_encode() and session_decode():将session数据编码成字符串或将字符串解码成session数据。
  
  在这里你可能使用他们:
  
  <?php
  
  session_start();
  
  session_register('someString');
  $someString="I hate cats!";
  
  //将所有的session变量编成一个字符串
  $sessStr = session_encode();
  
  //可以在这里看到
  echo $sessStr;
  
  echo "<br><br>";
  
  //在出现cats的地方用dogs进行替换
  $sessStr = ereg_repla