免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: superdoctor
打印 上一主题 下一主题

Perl CGI Session,要求加精 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-01-24 15:14 |只看该作者

Perl CGI Session,要求加精

不必写那个javascripts,那是我做例子用的

不管什么框架 都可以用,只要你没有跨域就可以取道session里面的值

论坛徽章:
0
12 [报告]
发表于 2005-01-26 11:18 |只看该作者

Perl CGI Session,要求加精

关于1.pl
我的代码如下:
#!c:/perl/bin/perl
require "tysz.pl";
print &rintHeader;

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('sess_user_name',$name);
因为我的网页上要有些中文,所以必须输出一个"头儿"
再这里我用的是print &rintHeader;
然后楼主的代码:print $cgi->;header(-cookie=>;$cookie);
就会输出Set-Cookie: CGISESSID=25c3e138d300831db01ec4a54e837222; path=/ Date: Wed, 26 Jan 2005 03:16:02 GMT Content-Type: text/html; charset=ISO-8859-1
我想代码里的print可以省略,楼主认为呢?
但是我省略以后,
在后面的文家里还是不能取出Session的值,
代码如下:
#!c:/perl/bin/perl
require "tysz.pl";
print &rintHeader;

print "begin<br>;";
use CGI;
use CGI::Session;
my $cgi = new CGI;

my $session = new CGI::Session("driver:File", $cgi, {Directory=>;'/tmp'});

my $user_name = $session->;param("sess_user_name";
print "session_user_name isuser_name<br>;";

楼主,帮忙看看,谢谢了~~

论坛徽章:
0
13 [报告]
发表于 2005-01-27 09:07 |只看该作者

Perl CGI Session,要求加精

省略print就无法将cookie放置到客户端了,当然就取不到session值!

论坛徽章:
0
14 [报告]
发表于 2005-01-27 13:54 |只看该作者

Perl CGI Session,要求加精

我有print的时候,也取不出来Session的值
写这个两段代码需要注意什么?
能给我说一下你的使用环境吗?
你是怎么测试这两段代码的?
为什么我还是搞不定?OH MY GOD!

论坛徽章:
0
15 [报告]
发表于 2005-01-27 15:28 |只看该作者

Perl CGI Session,要求加精

没有什么需要特别注意的,当然你的浏览器一定是要打开cookie的

其他的就没有什么需要特别说明的,你是直接用我的代码还是自己又 改了一下,如果有改动你将程序post上来我看看

论坛徽章:
0
16 [报告]
发表于 2005-01-27 16:31 |只看该作者

Perl CGI Session,要求加精

非常感谢仁兄!
首先说我用的是win2000 server+apache,浏览器是IE6
奇怪的是我在浏览器的安全设置里面找不到关于Cookie的设置
但我以前的程序可以使用Cookie
言规正传
第一个文件是一个简单的form表单,没有什么说的
第二个文件,如下:

  1. #!c:/perl/bin/perl
  2. require "tysz.pl";
  3. print &PrintHeader;

  4. use CGI;
  5. $query=new CGI;
  6. $name=$query->;param('name');
  7. print "name is:$name<br>;";        #在这里可以把上一个网页的文本框的值取出来

  8. #下面我想设置一个Session
  9. use CGI::session;
  10. my $cgi = new CGI;

  11. my $session = new CGI::Session("driver:File", $cgi , {Directory=>;'/tmp'});
  12. my $cookie = $cgi->;cookie(CGISESSID =>; $session->;id );
  13. print $cgi->;header(-cookie=>;$cookie);
  14. #$cgi->;header(-cookie=>;$cookie);
  15. $session->;param('sess_user_name','name');

  16. my $user_name = $session->;param("sess_user_name");
  17. print "session_user_name is:$user_name<br>;";        #在这里可以输出值,我觉得是设置好了
  18. #下面也是一个简单的表单,供测试用的
  19. print <<XWP;
  20. <html>;
  21. <head>;
  22. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">;
  23. <meta name="GENERATOR" content="Microsoft FrontPage 4.0">;
  24. <meta name="ProgId" content="FrontPage.Editor.Document">;
  25. <title>;New Page 1</title>;
  26. </head>;
  27. <body>;
  28. <p>;<a href="/cgi-bin/session3.plx">;session3</a>;</p>;
  29. <form method="POST" action="/cgi-bin/session3.plx">;
  30.   <p>;<input type="text" name="name" size="20">;</p>;
  31.   <p>;<input type="submit" value="提交" name="B1">;<input type="reset" value="全部重写" name="B2">;</p>;
  32. </form>;
  33. </body>;
  34. </html>;
  35. XWP

复制代码

第三个文件,如下:

  1. #!c:/perl/bin/perl
  2. require "tysz.pl";
  3. print &PrintHeader;

  4. print "begin<br>;";
  5. use CGI;
  6. $query=new CGI;
  7. $name=$query->;param('name');
  8. print "name is:$name<br>;";        #在这里可以把前一个文本框的值取出来

  9. #下面是想取Session值,就是取不出来
  10. use CGI::Session;
  11. my $cgi = new CGI;

  12. my $session = new CGI::Session("driver:File", $cgi, {Directory=>;'/tmp'});

  13. my $user_name = $session->;param("sess_user_name");
  14. print "session_user_name is:$user_name<br>;";

复制代码


谢谢了~~

论坛徽章:
0
17 [报告]
发表于 2005-01-28 09:44 |只看该作者

Perl CGI Session,要求加精

cookie的设置不在internet选项的安全里,而是在隐私->;高级里面,你先将策略设为提示,然后执行程序,看是否将一个包含sessionid的cookie放到了你的浏览器上

论坛徽章:
0
18 [报告]
发表于 2005-01-28 10:23 |只看该作者

Perl CGI Session,要求加精

我在“高级隐私策略设置”
将“覆盖自动cookie处理”的复选框打了对钩
然后第一方Cookie和第三方Cookie都选的“提示”
“总是允许回话cookie”没有选
确定后,每次在论坛里更换页面的时候,都有一个
“允许Cookie”“禁止Cookie”“详细信息”“帮助”的提示对话框
[quote]原帖由 "superdoctor"]看是否将一个包含sessionid的cookie放到了你的浏览器上[/quote 发表:

是在C:\Documents and Settings\Administrator\Cookies目录下,
在那里没有发现和我的设置相关的cookie
顺便问一下,我怎么把计算机上截图放到流言板上去?
那样你看着也许更清楚。

论坛徽章:
0
19 [报告]
发表于 2005-01-28 11:04 |只看该作者

Perl CGI Session,要求加精

那就没什么问题了,你找不到cookie 不在本帖的讨论范围

你在执行plx的时候IE地址栏都是什么?是不是都是同一个域啊,比如都是
www.a.com/cgi-bin/xxx.plx啊?

论坛徽章:
0
20 [报告]
发表于 2005-01-28 11:50 |只看该作者

Perl CGI Session,要求加精

对啊,
都是一个域
都是http://192.168.1.10/cgi-bin/xx.plx这样的
我能找到baidu、Chinaunix的Cookie都能找到
就是没有我的那个
我再看看!
我原来的一个程序可以设置Cookie
但在有的机器上不太好用
就是他第一次登录的时候取不到Cookie
但第二次登录就可以取到
能不能帮我看看这是什么问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP