繁体   English   中英

将值返回到CGI脚本

[英]Return a value to a CGI script

在我的主脚本main.cgi ,我为用户提供了一个登录form 提交此form ,将调用另一个脚本来执行验证, login.cgi

login.cgi

# Convert request method to Uppercase eg: GET, POST
$ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;

# If "POST" request sent, check login credentials
if ("$ENV{'REQUEST_METHOD'}" eq "POST"){
    # Get login parameters
    my $username = param('username');   
    my $password = param('password');   

    my $loginCheckResult = check_login($username, $password);

    # If login was successful, create a cookie
    if ($loginCheckResult){
        # Set Cookie
        my $cookie = CGI::Cookie->new(-name=>'USERID',-value=>$cookie_value);       
        print redirect(-uri => '/cgi-bin/main.cgi/', -cookie => $cookie);   


     # If login was Unsuccessful, redisplay the login page
     } else {
          # Do something here...    

     }
 }

如果登录成功,我将创建一个cookie并将用户发送回主页。 在这里,我可以测试cookie是否存在,以确定登录是否成功。

但是,如果登录失败,我不确定该怎么办。

main.cgi

if ($cookie eq ""){
     print show_login_form();
# Login successful
} else{ 
     print $cookie;
}

如果我将它们重定向回main.cgi ,将再次显示登录表单,但不会显示任何错误。 如果我在下面包含错误消息

print show_login_form();

那么它将始终显示。 有没有办法我可以发回一个变量以指示登录失败,然后在main.cgi检查此变量?

还是应该在登录尝试失败后在login.cgi创建另一个登录表单,并在此表单中包含错误消息?

谢谢您的帮助。

“成功登录”代码路径中的代码是生成登录用户应看到的页面的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM