パスワードの確認しかないcgiにユーザーIDの認証も追加したいのですが、どのように変更すれば良いのかわかりません。皆さんのアドバイスよろしくお願いします。
※ユーザーID $text = 'test'
# パスワードの確認
if ($formdata{'pass'} eq $password or $cookies{'pass'} eq $password) {
$access = $upload = $delete = 1;
$cookie = "Set-cookie: pass=$password\n";
} elsif ($formdata{'pass'} or $cookies{'pass'}) {
$form_log .= "パスワードが正しくありません。<br>";
}
No.2ベストアンサー
- 回答日時:
パスワードを $cookie変数に入れるとき、idの方が上書きされているせいだと思います。
$cookie .= "Set-cookie: pass=$password\n";
と繋いであげれば良いのではないでしょうか。
ありがとうございます。何とかできるようになりました。
またまた質問なのです。IEの画面を更新してもログイン画面に戻らなくなって一安心と思っていたら今度は、IEのブラウザを閉じ再度開くとクッキーがあるはずなのにログイン画面が表示されてしまいます。ご指導よろしくお願いいたします。
No.4
- 回答日時:
えっと、私が仕切るのも何ですが、もし認証に関しては期待通りの動作として問題がないようでしたら一度質問を締め切って、補足分に書かれた質問は別に上げるようにしてもらえますでしょうか。
#このOKWeb(Goo?)の正しい使い方として...(笑)
今度は質問はプログラミングの Perlに投稿してくださいね。
No.3
- 回答日時:
ちょっと情報が少なすぎますね。
いくつか確認します。
・パスワードだけの時は期待した動作をしていたのですね?
・クッキーは正しく格納されていますか?(パソコン上)
・また、id/pass比較前までに期待したクッキーの値が変数に読み込まれていますか?
・クッキーの保存期間は?(プログラム上及びブラウザ上)
この回答への補足
すいません。
今確認したところ当初からIEを閉じたらログインし直す設定でした。お騒がせしました。
あと、どうしてもわからない問題があります。
このcgiはファイルをアップロードとダウンロードすることが出来るcgiです。
それで、日本語名のついたファイルをアップロードするときは文字化けもなく保存できるのですが、そのファイルをダウンロードすると日本語が文字化けしてダウンロードされてしまいます。アップロードした時点で Fileというフォルダに格納されるのですが、そのときはまだ文字化けはしていません。
ダウンロードするファイルを選択した時点で文字化けしたアドレスがIEの下に表示されます。そして、その文字化けの文字のままファイル名となってダウンロードされてきます。
ご指導よろしくお願いいたします。
こんなおバカに付き合ってもらってありがとうございます。
>パスワードだけの時は期待した動作をしていたのですね?
パスワードだけのときはちゃんと動いてました。
最初に書いたパスワードの確認のソースがはじめにかかれていたものです。
>クッキーは正しく格納されていますか?(パソコン上)
>また、id/pass比較前までに期待したクッキーの値が変数 に読み込まれていますか?
>クッキーの保存期間は?(プログラム上及びブラウザ上)
すいません。調べたのですがわかりませんでした。
多分パスワードの確認のところでつまずいているような感じがします。
ソースはこんな感じになっています。
http://219.168.92.41/file/WalRack.txt
いろいろ言ってすいません。よろしくお願いします。
No.1
- 回答日時:
まず、この質問はカテゴリが違いますね。
プログラミングのカテゴリでご質問されると沢山の回答が着くと思います。各ユーザーIDとパスワードを関連づける仕組みを作り、入力された(またはcookieと)一つずつループで比較して IDとパスワードが一致したら認証OKということです。
Perlですとこんな感じです(cookieは省略)。
%passwd = (
'user1' => 'pw001',
'user2' => 'pw002'
};
foreach $userid (keys %passwd) {
if ($userid eq $formdata{'userid'}) {
if ($passwd{$userid} eq $formdata{'pass'}) {
認証OK
last;
}
}
}
お返事ありがとうございます。
すいません初心者で頭も悪いものですから、もう少し詳しく教えていただけないでしょうか。
ユーザーが1人だけの場合、自分なりに考えてみました。
# パスワードの確認
my $password = 'test';
my $text = 'test';
と定義した場合。
if ($formdata{'id'} eq $text or $cookies{'id'} eq $text){
$cookie = "Set-cookie: id=$text\n";
if ($formdata{'pass'} eq $password or $cookies{'pass'} eq $password)
{
$access = $upload = $delete = 1;
$cookie = "Set-cookie: pass=$password\n";
}
elsif ($formdata{'pass'} or $cookies{'pass'})
{
$form_log .= "パスワードが正しくありません。<br>";
}
}
elsif ($formdata{'id'} or $cookies{'id'})
{
$form_log .= "ユーザーIDが正しくありません。<br>";
}
これだとログインできるけどなんか変。
それにログイン後、ブラウザの更新するとまたログイン画面に戻ってしまいます。
多分クッキーか$access = $upload = $delete = 1;
がうまくいってないのかな?
すいませんよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windowsのログイン失敗にかかる...
-
ノートパソコンのカバー開閉時...
-
cgiでのユーザーIDとパスワード...
-
突然パスワードを要求されログ...
-
ようこそ画面にパスワードは意...
-
パソコンを無断で使われている...
-
Wi-Fiを特定のアプリだけ繋がな...
-
DELLのパソコンの電源を入...
-
「遮断」の反対語は何ですか?
-
IPアドレスで接続できない
-
パソコンからパンという乾いた...
-
ギガバイト社のM/B、起動時の警...
-
受信拒否設定は逆効果?
-
プリンタを動かすとパソコンが...
-
ランタイムエラーで、解決方法...
-
HDDの不良ブロックの解消方法を...
-
アプリケーション使用中にI/O ...
-
VectorWorksでエラーメッセージ...
-
fortnite/フォートナイト が起...
-
Windows起動時にウイルスバスタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windowsのログイン失敗にかかる...
-
ノートパソコンのカバー開閉時...
-
突然パスワードを要求されログ...
-
ウインドウズ10のリモート接続...
-
PWを3回間違えて自動消去
-
Windowsパソコンのログインを遅...
-
Windows XP アカウントのパス...
-
IEのオートコンプリート機能の...
-
Microsoftアカウントですが、二...
-
指紋認証後の謎の入力画面
-
bitlocker破れますか?
-
msnのメッセンジャーで他の場所...
-
じゃらんnetでパスワード忘れ、...
-
ようこそ画面にパスワードは意...
-
win8でのLINEについて
-
win7使用中。過去アウトルック...
-
windowsセキュリティーでパスワ...
-
ギガバイト社のM/B、起動時の警...
-
パソコンを無断で使われている...
-
MACアドレスを偽装したい
おすすめ情報