我对 perl 很陌生。我制作了一个简单的登录脚本,它应该在重定向到我的表单页面之前设置一个 cookie。我已经尝试了我能想到的一切,但 Safari 中没有设置 cookie。几个帖子显示出细微的变化,我都试过了。
我的代码:
my $userQuery = "SELECT user_name , password FROM egi_users WHERE user_name = '$username' AND password = '$cryptword'";
my $result = $dbh->prepare($userQuery);
$result->execute()or die "MYSQL ERROR : $DBI::errstr\n";
my $rows = $result->rows;
if($rows == 1){
#login is valid. Create cookie and send to patient_data page.
#print("success\n");
my $c = CGI::Cookie->new(-name=>'login_access',
-value=>$username,
-expires=>'+1h');
print $q->redirect(-uri=>'http://mytestserver.com/cgi/patient_data.pl' , -status => '301' , -cookie => $c);
}else{
print $q->redirect(-uri=>'http://mytestserver.com/);
}
我已经实现了 CGI 所需的所有功能;
使用 CGI;使用 CGI::Carp... 使用 CG::Session;使用 CGI::Cookie;
该脚本正确验证和重定向,但没有设置任何 cookie。我不确定我在做什么。如果您有更好的方法建议,那也很棒。
感谢您的关注