パスワードの確認しかない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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windowsパソコンのログインを遅...
-
IEのオートコンプリート機能の...
-
Windowsのログイン失敗にかかる...
-
パソコンからパンという乾いた...
-
MACアドレスを偽装したい
-
パソコンを無断で使われている...
-
ギガバイト社のM/B、起動時の警...
-
fortnite/フォートナイト が起...
-
ウィルスバスターのファイアウ...
-
受信拒否設定は逆効果?
-
ルーターの設定項目
-
DELLのパソコンの電源を入...
-
「遮断」の反対語は何ですか?
-
iPhone「写真をインポート中」...
-
パソコン(MacBookAir) のパソコ...
-
足跡?の消し方を教えて下さい。
-
トロイの木馬?
-
ネットサーフィンをしていると...
-
クリーンアップ、デフラグ、エ...
-
PCを起動したらどうしてもパワ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ノートパソコンのカバー開閉時...
-
突然パスワードを要求されログ...
-
Windowsのログイン失敗にかかる...
-
msnのメッセンジャーで他の場所...
-
ウインドウズ10のリモート接続...
-
Windowsパソコンのログインを遅...
-
AppleID作成について・・・
-
PWを3回間違えて自動消去
-
指紋認証後の謎の入力画面
-
Windows98のログイン時にパスワ...
-
パスワード忘れ…
-
cgiでのユーザーIDとパスワード...
-
bitlocker破れますか?
-
Windows XP アカウントのパス...
-
Windows98 ネットワークパスワ...
-
ようこそ画面にパスワードは意...
-
windowsセキュリティーでパスワ...
-
じゃらんnetでパスワード忘れ、...
-
Microsoftアカウントですが、二...
-
パスワードを忘れました。でも...
おすすめ情報