
パスワードの確認しかない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で質問しましょう!
似たような質問が見つかりました
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- その他(開発・運用・管理) Windowsバッチファイルでリモートデスクトップを自動ログインするが確認画面が出る対処方法 1 2022/12/19 15:48
- Visual Basic(VBA) VBAでシートの保護をかける際に「書式設定の変更」を有効にする 1 2023/04/17 18:18
- その他(ブラウザ) 自分のデフォルトゲートウェイをアドレスバーに入力し、Enterキーを押します。(一般的なデフォルトゲ 4 2022/05/30 22:43
- その他(ブラウザ) ・再投稿です 自分のデフォルトゲートウェイをアドレスバーに入力し、Enterキーを押します。(一般的 1 2022/05/30 23:16
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ノートパソコンのカバー開閉時...
-
PWを3回間違えて自動消去
-
HDDの不良ブロックの解消方法を...
-
数時間後にシステムが崩壊する...
-
Windows起動時にウイルスバスタ...
-
アプリケーションエラー
-
「遮断」の反対語は何ですか?
-
パソコンからパンという乾いた...
-
Linuxの不具合について
-
パソコンでWi-Fiにつなげようと...
-
MACアドレスを偽装したい
-
ウィルスセキュリティゼロで毎...
-
旧型パソコンの安全性
-
他のパソコンからディスプレイ...
-
どんなファイアーヲールを
-
Microsoft updateが出来ません。
-
スパイウェアチェックソフト Ad...
-
Real Playerをアンインストール...
-
フォトショップが開けなくなり...
-
なぜマイクロソフトはWindows10...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windowsのログイン失敗にかかる...
-
ノートパソコンのカバー開閉時...
-
windowsセキュリティーでパスワ...
-
じゃらんnetでパスワード忘れ、...
-
PWを3回間違えて自動消去
-
ウインドウズ10のリモート接続...
-
bitlocker破れますか?
-
インターネットカフェ・満喫で...
-
メーラのパスワードがわからな...
-
Windows XP アカウントのパス...
-
アカウントにログインするとき...
-
Windowsパソコンのログインを遅...
-
AppleID作成について・・・
-
ギガバイト社のM/B、起動時の警...
-
パソコンを無断で使われている...
-
「遮断」の反対語は何ですか?
-
MACアドレスを偽装したい
-
パソコンからパンという乾いた...
-
DELLのパソコンの電源を入...
-
TeamViewerを利用不可能にしたい。
おすすめ情報