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;
下面的程序无法将第一页中的变量值$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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28