赛迪网 > IT技术 php > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

长沙发上的对话(三)

发布时间:2006.08.04 19:28     来源:plwww    作者:

p> 市场游戏

  现在你已经知道了基本的东西,再来点复杂的吧,演示一个现实生活中的session 应用。让我们假设一下,你有一个金融门户,它允许它的用户选择四支股票,然后显示每支股票的当前市场价格,并且在每一页上显示用户在这个站点上的过程。

  在下面的例子中,我们假定用户已经被验证过身份并且登录到站点上来了。我们使用了MySQL 数据库,里面有一个名为user_info的表,用于存储用户的四支股票和唯一用户名。一旦一个session被初始化了,我们注册变量保存用户名和四支股票,然后同数据库进行连接,取回值并显示在页面上。

  代码如下:

$#@60;?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!$#@60;br$#@62;;

echo Your selected stocks are:$#@60;br$#@62;;

echo $stock1$#@60;br$#@62;;

echo $stock2$#@60;br$#@62;;

echo $stock3$#@60;br$#@62;;

echo $stock4$#@60;br$#@62;;

// code to generate rest of page

?$#@62;

  PHP4有许多与session相关的函数 -- 大部分都不需要解释,把他们列在下面。

session_destroy() : 释放所有的session数据(当一个用户从一个站点注销时非常有用,你需要释放掉在他访问期间的所创建的所有变量)。

session_name(): 设置或读取当前session的名字。

session_id(): 设置或读取当前session的id值。
session_unregister(session_variable_name): 从一个特别的session注销一个变量。

session_is_registered() :检查是否一个session变量已经注册了。

例如:

$#@60;?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);

}

?$#@62;

session_encode() and session_decode(): 将session数据编码成字符串或将字符串解码成session数据。

在这里你可能使用他们:

$#@60;?PHP

session_start();

session_register(someString);

$someString=I hate cats!;

//将所有的session变量编成一个字符串

$sessStr = session_encode();

//可以在这里看到

echo $sessStr;

echo $#@60;br$#@62;$#@60;br$#@62;;

//在出现cats的地方用dogs进行替换

$sessStr = ereg_replace(cats,dogs,$sessStr);

//解码后更新了session变量

session_decode($sessStr);

//再显示一次$sessstr

echo $someString;

?$#@62;

  最后,在开始PHPLIB之前,有一个技术性问题你应该知道的 -- 上面所有的例子都使用了cookies在客户端来保存session id值。但是如果用户的浏览器被设成拒绝cookies会怎么样呢?

  如果发生这种情况,那就需要将一个session id通过嵌在url中从一页传递到另一页上去。例如: $#@60;a href=http://www.someserver.com/admin/preferences.PHP3?PHPSESSID=$#@60;? echo $PHPSESSID; ?$#@62;$#@62;Edit Your Portfolio! $#@60;/a$#@62;

  这个就可以保证在后面的页面中session变量是有效的。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 长沙发上的对话(一) (05-14) · PHP4的新特征 (08-03)
· 把PHP4安装到Win2000的IIS5中 (01-05) · PHP/MySQL三日通-第三天(二) (11-22)
· PHP/MySQL三日通-第三天(一) (04-21) · PHP/MySQL三日通-第二天(二) (03-04)
· PHP/MySQL三日通-第二天(四) (06-06) · PHP/MySQL三日通-第二天(一) (05-03)
· PHP/MySQL三日通-第二天(三) (02-20) · PHP/MySQL三日通-第一天(一) (08-02)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管