- #!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;