私はperlが初めてです。フォーム ページにリダイレクトする前に Cookie を設定する単純なログイン スクリプトを作成しました。考えられることはすべて試しましたが、Cookie が Safari に設定されません。いくつかの投稿はわずかな違いを示しており、私はそれらすべてを試しました。
私のコード:
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 は設定されません。何をしているのかよくわかりません。アプローチでより良い提案があれば、それも素晴らしいでしょう。
ご覧いただきありがとうございます