市场游戏 现在你已经知道了基本的东西,再来点复杂的吧,演示一个现实生活中的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变量是有效的。
转自: http://edu.chinaz.com |