用Session实现Perl验证及页面跳转。
2008-11-28 10:17
351 查看
#以下为登录页面代码(只为测试,代码很简单):
#!C:/perl/bin/perl.exe
# fileName:index.cgi
use warnings;
use strict;
use CGI;
# 都是静态Html代码,就不注释了
print "Content-type:text/html/n/n";
print "<link rel='stylesheet' href='ey.css' type='text/css' />";
print "<html>";
print "<head><title>登录测试页面</title>";
print "<meta http-equiv='Content-Type' content='text/html; charset=GB2312' />";
print "<form action='auth.cgi' method='post'>";
print "<table align='center' width='600' border='0' cellspacing='0' cellpadding='0' class='kuang'>";
print "<tr><td height='30' align='right'>UserName:";
print "<td align='left'><input type='text' name='username' size='30'/></td></tr>";
print "<tr><td height='30' align='right'>Password:</td>";
print "<td align='left'><input type='Password' name='password' size='30'/></td></tr>";
print "<tr>";
print "<td height='50' colspan='2' align='center'><input type='submit' value='login' /> <input type='reset' value='reset' /></td>";
print "</tr>";
print "</table>";
print "</form>";
#以下代码用来登录验证:
#!C:/perl/bin/perl.exe
# fileName:auth.cgi
use warnings;
use strict;
use CGI;
use CGI::Session;
#需要保存到session中的信息(从前一个页面发来的用户名和密码数据);
my $username = param('username');
my $pwd = param('password');
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",$pwd);
#将session值输入变量中
my $userId = $session->param('uname');
my $userPwd = $session->param('password');
# 此处开始页面跳转,因为没有涉及数据库,所以只用静态字符串做对比;
# 我也不知道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;
# 当用户名和密码都匹配的时候,开始跳转到新页面:
#!C:/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');
# 输出从Session中获得的值;
print $session->param('userSessionId');
print $session->param('userSessionPwd');
exit;
第一次写Perl,有很多不足之处,请大家批评指正,欢迎大家提出意见和建议!^_^...
#!C:/perl/bin/perl.exe
# fileName:index.cgi
use warnings;
use strict;
use CGI;
# 都是静态Html代码,就不注释了
print "Content-type:text/html/n/n";
print "<link rel='stylesheet' href='ey.css' type='text/css' />";
print "<html>";
print "<head><title>登录测试页面</title>";
print "<meta http-equiv='Content-Type' content='text/html; charset=GB2312' />";
print "<form action='auth.cgi' method='post'>";
print "<table align='center' width='600' border='0' cellspacing='0' cellpadding='0' class='kuang'>";
print "<tr><td height='30' align='right'>UserName:";
print "<td align='left'><input type='text' name='username' size='30'/></td></tr>";
print "<tr><td height='30' align='right'>Password:</td>";
print "<td align='left'><input type='Password' name='password' size='30'/></td></tr>";
print "<tr>";
print "<td height='50' colspan='2' align='center'><input type='submit' value='login' /> <input type='reset' value='reset' /></td>";
print "</tr>";
print "</table>";
print "</form>";
#以下代码用来登录验证:
#!C:/perl/bin/perl.exe
# fileName:auth.cgi
use warnings;
use strict;
use CGI;
use CGI::Session;
#需要保存到session中的信息(从前一个页面发来的用户名和密码数据);
my $username = param('username');
my $pwd = param('password');
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",$pwd);
#将session值输入变量中
my $userId = $session->param('uname');
my $userPwd = $session->param('password');
# 此处开始页面跳转,因为没有涉及数据库,所以只用静态字符串做对比;
# 我也不知道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;
# 当用户名和密码都匹配的时候,开始跳转到新页面:
#!C:/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');
# 输出从Session中获得的值;
print $session->param('userSessionId');
print $session->param('userSessionPwd');
exit;
第一次写Perl,有很多不足之处,请大家批评指正,欢迎大家提出意见和建议!^_^...
相关文章推荐
- Servlet课程0425(六) 不经过验证直接跳转---session实现不同页面之间共享数据
- 实现页面session验证,非法用户将弹出提示框并跳转页面
- 重写ajax方法实现异步请求session过期时跳转登录页面
- 重写ajax实现session超时跳转到登陆页面
- ajax前置处理实现异步请求session过期时跳转登录页面
- Jquery通过submitHandler 实现验证后跳转到别的页面
- Session超时跳转到指定页面(filter实现)解决了图片被过滤问题
- JavaScript解决一个带验证的Form两个Submit事件(一个页面保持不动【AJAX实现】,一个页面提交并跳转)的场景
- 实现session登陆时间的验证,验证用户登录页面的一个监听器
- 5.JSP之使用jsp:forward实现用户信息验证的页面跳转
- Ext6.x+springmvc+shiro框架下实现session过期跳转到登录页面
- Session过滤器 对指定路径下的请求进行session的失效验证,如失效则跳转到登录页面
- 实现session登陆时间的验证,验证用户登录页面的一个监听器
- struts2拦截器实现session超时返回登录页面(iframe下跳转到其父页面)
- 实现session超时后自动跳转到登陆页面(前台JS,JAVA,判断是否Ajax请求)
- 使用无刷新技术,去请求该失效Session的页面,实现跳转到重新登陆页面。
- java实现验证码生成,解决在页面验证时候session获得的总是前一次值的问题
- QT实现简单验证的页面跳转
- filter实现登录验证,并实现页面跳转到登录前浏览的页面(同步异步皆可)
- 重写ajax方法实现请求session过期时跳转登录页面