Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14418014
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:30:55

下载本文示例代码
p>有很多给猫换肤的办法...   当然,如果你的站点仍然运行着PHP3,你就无法使用迄今为止的任何代码。但是不要沮丧 -- 有另一种提供给PHP3用户的解决办法。它就叫做PHPLIB,它提供了一组有用的类,允许在你的PHP3中增加对session的管理。可以按照包中的指示进行安装,你还需要修改"local.inc"配置文件来创建你自已的类。   象在PHP4中一样,在每次你初始化一个session时,你需要预先调用page_open()函数。PHPLIB返回一个缺省的名为Example_Session的类 -- 你可以在"local.inc"文件中修改这个值 -- 它将用在下面的例子中: $#@60;?php page_open(array("sess" =$#@62; "Example_Session")); ?$#@62;   在任何发给浏览器的输出之前调用page_open()非常重要。为了注册你的session变量,下面的语句可以完成这个工作。 $#@60;?php //初始化一个session page_open(array("sess" =$#@62; "Example_Session")); //注册一个session变量 $sess-$#@62;register(username); ?$#@62;   每一个页面也必须包含相应的page_close()函数,用来确认所以的改变量被保存在数据库中。 $#@60;?php page_close(); ?$#@62;   除了这些,大部分的代码都是一样的。看一下以前例子的PHPLIB版本: $#@60;?php //初始化一个session page_open(array("sess" =$#@62; "Custom_Session")); //注册session变量 - 注意语法 $sess-$#@62;register(username); $sess-$#@62;register(stock1); $sess-$#@62;register(stock2); $sess-$#@62;register(stock3); $sess-$#@62;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 $usernam #@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;"; //生成页面其余代码 //将数据保存到数据库中 page_close(); ?$#@62;   如你所见,一旦你放下PHP4版本,理解PHPLIB版并不因难 -- 当你知道了PHP4中的对session的内部支持很大程度上基于PHPLIB模块你就不会感到奇怪了。如果你感兴趣,PHPLIB实际上在对session的管理中,对身份认证和权限的类更加深入,它允许你在基于数据库的认证管理上,给一个用户允许或禁止处理的权力 -- 可以看一下文档中关于如何使用这些特性的例子。   PHPLIB也提供一些有趣的内建函数。 unregister(variable)   允许你从一个特别的session中注销一个变量。注意在那种情况下,变量并没有被删除,可是它的值将会在页尾丢失,因为它不再被保存到数据库中。 $#@60;?php page_open(array("sess" =$#@62; "Example_Session")); //注册一个变量 $sess-$#@62;register(username); //检查是否它已经被注册了 if($sess-$#@62;is_registered(username)) { echo "Variable \"username\" is registered!$#@60;br$#@62;"; } else { echo "Variable \"username\" is unregistered!$#@60;br$#@62;"; } //注销一个变量 $sess-$#@62;unregister(username); //检查是否已经被注销 if($sess-$#@62;is_registered(username)) { echo "Variable \"username\" is registered!$#@60;br$#@62;"; } else { echo "Variable \"username\" is unregistered!$#@60;br$#@62;"; } page_close(); ?$#@62; is_registered(variable) 如果在一个session已经被注册了,返回true,否则返回false。 $#@60;?php page_open(array("sess" =$#@62; "Example_Session")); if($sess-$#@62;is_registered(username)) { echo "A session variable by the name \"username\" already exists"; } else { $sess-$#@62;register(username); } page_close(); ?$#@62; delete() 释放当前的session。   要注意地有趣的一点是:在PHPLIB的cookie模式中,有可能在调用过delete()之后开始一个新的session,在客户端设置一个新的cookie,甚至重新注册一些以前session的变量 -- 可以从根本上使改变session象飞一样。当然,你象这样做事情,你需要让你的生活...快起来! url($url) 充许你将用户重定向到一个新的页面。 self_url() 返回一个当前页的URL的引用,包括PHP_SELF和QUERY_STRING信息。   那么在最后,对那些不幸拥有一个不提供PHP4和PHPLIB的ISP的你来说 -- 记住,通过好的cookie 技术总是可能模拟出session来的。你所要做的只是设置一个带有信息的cookie ,用来长期保留用户对你的站点的访问过程,每次在用户访问一个新页面的时候处理这个信息。很原始 -- 但是它可以工作,而且有时你也不能将能够做成一件事的简单方法打死! 病人离开医院 病人: 哇哦,医生 -- 太好了!非常感谢你做的一切! 心理医生: 没问题,维克多。我很乐意帮助你。现在感觉好点吗? 病人: 噢,轻松!当我刚进来时,整个天看上去都是灰色和阴沉的 -- 现在,这个雨蓬窗户外面的景色从来没有那么好过... 心理医生: 恩...维克多...如果我是你在外面会很小心,扶手有一点坏了,在那可能不太安全。 病人: 别担心,医生 -- 象这样的天,我感到神...圣...啊啊!!!! p>有很多给猫换肤的办法...   当然,如果你的站点仍然运行着PHP3,你就无法使用迄今为止的任何代码。但是不要沮丧 -- 有另一种提供给PHP3用户的解决办法。它就叫做PHPLIB,它提供了一组有用的类,允许在你的PHP3中增加对session的管理。可以按照包中的指示进行安装,你还需要修改"local.inc"配置文件来创建你自已的类。   象在PHP4中一样,在每次你初始化一个session时,你需要预先调用page_open()函数。PHPLIB返回一个缺省的名为Example_Session的类 -- 你可以在"local.inc"文件中修改这个值 -- 它将用在下面的例子中: $#@60;?php page_open(array("sess" =$#@62; "Example_Session")); ?$#@62;   在任何发给浏览器的输出之前调用page_open()非常重要。为了注册你的session变量,下面的语句可以完成这个工作。 $#@60;?php //初始化一个session page_open(array("sess" =$#@62; "Example_Session")); //注册一个session变量 $sess-$#@62;register(username); ?$#@62;   每一个页面也必须包含相应的page_close()函数,用来确认所以的改变量被保存在数据库中。 $#@60;?php page_close(); ?$#@62;   除了这些,大部分的代码都是一样的。看一下以前例子的PHPLIB版本: $#@60;?php //初始化一个session page_open(array("sess" =$#@62; "Custom_Session")); //注册session变量 - 注意语法 $sess-$#@62;register(username); $sess-$#@62;register(stock1); $sess-$#@62;register(stock2); $sess-$#@62;register(stock3); $sess-$#@62;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 $usernam #@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;"; //生成页面其余代码 //将数据保存到数据库中 page_close(); ?$#@62;   如你所见,一旦你放下PHP4版本,理解PHPLIB版并不因难 -- 当你知道了PHP4中的对session的内部支持很大程度上基于PHPLIB模块你就不会感到奇怪了。如果你感兴趣,PHPLIB实际上在对session的管理中,对身份认证和权限的类更加深入,它允许你在基于数据库的认证管理上,给一个用户允许或禁止处理的权力 -- 可以看一下文档中关于如何使用这些特性的例子。   PHPLIB也提供一些有趣的内建函数。 unregister(variable)   允许你从一个特别的session中注销一个变量。注意在那种情况下,变量并没有被删除,可是它的值将会在页尾丢失,因为它不再被保存到数据库中。 $#@60;?php page_open(array("sess" =$#@62; "Example_Session")); //注册一个变量 $sess-$#@62;register(username); //检查是否它已经被注册了 if($sess-$#@62;is_registered(username)) { echo "Variable \"username\" is registered!$#@60;br$#@62;"; } else { echo "Variable \"username\" is unregistered!$#@60;br$#@62;"; } //注销一个变量 $sess-$#@62;unregister(username); //检查是否已经被注销 if($sess-$#@62;is_registered(username)) { echo "Variable \"username\" is registered!$#@60;br$#@62;"; } else { echo "Variable \"username\" is unregistered!$#@60;br$#@62;"; } page_close(); ?$#@62; is_registered(variable) 如果在一个session已经被注册了,返回true,否则返回false。 $#@60;?php page_open(array("sess" =$#@62; "Example_Session")); if($sess-$#@62;is_registered(username)) { echo "A session variable by the name \"username\" already exists"; } else { $sess-$#@62;register(username); } page_close(); ?$#@62; delete() 释放当前的session。   要注意地有趣的一点是:在PHPLIB的cookie模式中,有可能在调用过delete()之后开始一个新的session,在客户端设置一个新的cookie,甚至重新注册一些以前session的变量 -- 可以从根本上使改变session象飞一样。当然,你象这样做事情,你需要让你的生活...快起来! url($url) 充许你将用户重定向到一个新的页面。 self_url() 返回一个当前页的URL的引用,包括PHP_SELF和QUERY_STRING信息。   那么在最后,对那些不幸拥有一个不提供PHP4和PHPLIB的ISP的你来说 -- 记住,通过好的cookie 技术总是可能模拟出session来的。你所要做的只是设置一个带有信息的cookie ,用来长期保留用户对你的站点的访问过程,每次在用户访问一个新页面的时候处理这个信息。很原始 -- 但是它可以工作,而且有时你也不能将能够做成一件事的简单方法打死! 病人离开医院 病人: 哇哦,医生 -- 太好了!非常感谢你做的一切! 心理医生: 没问题,维克多。我很乐意帮助你。现在感觉好点吗? 病人: 噢,轻松!当我刚进来时,整个天看上去都是灰色和阴沉的 -- 现在,这个雨蓬窗户外面的景色从来没有那么好过... 心理医生: 恩...维克多...如果我是你在外面会很小心,扶手有一点坏了,在那可能不太安全。 病人: 别担心,医生 -- 象这样的天,我感到神...圣...啊啊!!!! 下载本文示例代码


长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)长沙发上的对话(四)
阅读(125) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~