+ -
当前位置:首页 → 问答吧 → CGI-Session问题向大侠们请教

CGI-Session问题向大侠们请教

时间:2011-08-12

来源:互联网

我是perl+CGI新手,现在在琢磨如何使用SESSION。
下面的程序无法将第一页中的变量值$username='admin'和$passwd='admin123'传到第二页中,我实在不知道是哪里不对。恳请各位大侠不吝赐教。

##################################################################

#!F:\Work\Perl\bin\perl.exe
# fileName:auth.cgi
use warnings;
use strict;
use CGI;
use CGI::Session;

#需要保存到session中的信息(用户名和密码数据);
my $username = 'admin';
my $passwd = 'admin123';
my $cgi = new CGI;
my $session= new CGI::Session("driver:File",$cgi,{directory=>'/tmp'});
#设置或构造一个cookie,标记是sessionid;
my $cookie=$cgi->cookie(CGISESSID=>$session->id);
#下面的userSessionId和userSessionPwd可以随便设置;
$session->param("userSessionId",$username);
$session->param("userSessionPwd",$passwd);
#将session值输入变量中
my $userId = $session->param('userSessionId');
my $userPwd = $session->param('userSessionPwd');
# 此处开始页面跳转,因为没有涉及数据库,所以只用静态字符串做对比;
# 我也不知道perl比较字符串的函数是哪个,就选择了另外一个函数,如果知道的,希望能回帖告知;
if( index($userId,'admin')!=-1 && index($userPwd,'admin123')!=-1 )
{
  print "Location: success.cgi\n\n";
  exit;
}
else
{
# 以下这句是关键,上面的条件满足时不用这句,否则报500错误 /
# 当条件不满足时,输出一个‘bad’标志则需要这句话print "Content-type:text/html\n\n";
  print "Content-type:text/html\n\n";
  print "bad";
}
exit;

##################################################################

#!F:\Work\Perl\bin\perl.exe
#fileName:success.cgi
#use warnings;
#use strict;
use CGI;
use CGI::Session;

my $cgi = new CGI;
my $session= new CGI::Session("driver:File",$cgi,{directory=>'/tmp'});
print $cgi->header(-charset=>'GB2312');

my $userId = $session->param('userSessionId');
my $userPwd = $session->param('userSessionPwd');

# 输出从Session中获得的值;
print "Session userId=".$userId.'</br>';
print "Session userPwd=".$userPwd.'</br>';
print "Session username=".$session->param('userSessionId').'</br>';
print "Session password=".$session->param('userSessionPwd').'</br>';

print "<h1>Page finish</h1>";
exit;

作者: fm0517   发布时间: 2011-08-12

友情up

作者: szboys8   发布时间: 2011-08-13

热门下载

更多