阅 读 文 章

Perl CGI Session,要求加精

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(superdoctor) | 时间:2007-05-27 | 浏览:人次 ]


最近看到很多帖子都是关于Perl CGI Session的使用的,在此算是统一回复罢

正确的代码如下(1.pl)

#!/usr/bin/perl
use CGI;
use CGI::Session;

my $cgi= new CGI;
my $session = new CGI::Session("driver:File", $cgi , {Directory=>;'/tmp'});
my $cookie = $cgi->;cookie(CGISESSID =>; $session->;id );
print $cgi->;header(-cookie=>;$cookie);
$session->;param('f_name', 'Sherzod');
print "<script language='javascript'>;";
print " location.href='http://www.chinaunix.net/jh/25/2.pl';";
print "</script>;";


(2.pl)

#!/usr/bin/perl -w
use strict;
use CGI;
use CGI::Session;

my $cgi = new CGI;
my $session = new CGI::Session("driver:File", $cgi ,{Directory=>;'/tmp'});
my $strName = $session->;param("f_name");
print $cgi->;header(); 
print "-------------------$strName--------------------\n"; 


前面的帖子里面主要的问题是认为CGI::Session是可以独立使用的,其实不然,因为我们知道session的两种传递形式就是get url和cookie,因此在第一个页面创建session的时候必须也要将次session id通过url或者cookie传抵给以后的页面,当以后的页面在执行的时候流览器将自动将同一个域的cookie传到服务器上,然后我们利用new CGI可以得到这个session id,因此就可以通过/tmp文件夹下的session文件取到value了

当然,这个例子仅仅演示了coockie session的使用,但是同样有借鉴意义的

在这几天的帖子里面有一位同志错误将new session里面第二个参数置为undef,其实这相当于又重建了一次session,跟前一个页面建的session完全失去联系,所以最后得到的f_name值是不存在的

归根结底,session其实是一个记录了此次会话的一些特有信息的文件(或者数据库行,当使用不同的session driver时),如果没有将session id互相传递来判断的话是无法得到相应信息的
 :)



 flw 回复于:2005-01-13 15:15:14

请专家鉴定一下,
有望成为精华。


 superdoctor 回复于:2005-01-13 15:19:34

谢谢flw

其实也不特别要求,不过看到问的人的确很多,希望加成精华后便于查找罢了


 flw 回复于:2005-01-13 15:28:58

可惜我不懂 CGI……


 apile 回复于:2005-01-13 15:39:48

不錯呀...很好...
我用perl寫CGI..但是不用CGI pm..:)
也很少用session...
但是看起來應該沒錯....:)


 superdoctor 回复于:2005-01-13 15:52:24

:) ,程序我测过,没有问题的,呵呵


 Osment 回复于:2005-01-13 18:04:05

支持一把:) 
8过如果用文本  Session 的话,建议用Firzen <firzen@perlchina.org>;. 老兄写的DiGiSession,比CGI::Session模块效率高一点。


 望尘莫及 回复于:2005-01-14 09:27:14

现在看不懂,先存下来^_^


 yzcdf 回复于:2005-01-18 19:19:07

楼上的,好主意,赞成!

论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 要求 回复 cookie print my 一个 可以 session 文件 没有

最新评论 共有1位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.