※ ChatGPTを利用し、要約された質問です(原文:cgiのプログラム)
CGIのプログラムを使ったアカウント管理についての質問
このQ&Aのポイント
CGIのプログラムを使ってアカウントの管理をする際に、ログインと認証のページのプログラムをどのように書き換えれば良いか知りたいです。
ログインページが作成できたが、認証のページが上手く動作しない問題があります。
動作環境はruby 1.8.7で、アカウント情報はテキストファイル(accountData.txt)から読み込まれています。
前自分が質問したアカウントの管理についてなんですが、今度はそれをcgiプログラムに書き換えたいと思っています。そこで、ログインのページはできたのですが、認証できたかどうかのページがうまくいきませんでした。そこでなんですが、どう書き換えたらよいのでしょうか?? お願いします! ログインのページと認証のページのプログラムを両方書いておきます。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>ログインページ</title>
</head>
<body>
ログインしてください。<br>
自分のアカウント名とパスワードを入力してください。<br>
<form method="GET" action="http://verify.cgi">
アカウント名: <input type="text" name="an"> <br>
パスワード:<input type="password" name="pw" size="15">
<input type="submit" value="ログイン">
</form>
</body>
</html>
#!/usr/local/bin/ruby
print "Content-type: text/html; charset=euc-jp\n\n"
$KCODE = "e"
require "CGI"
cgi = CGI.new
account = cgi["an"]
password = cgi["pw"]
hash_account = {}
fo = open("accountData.txt", "r")
i = 0
while(line = fo.gets)
ary = line.split
hash_account[ary[0]] = ary[1]
i = i + 1
end
fo.close
account = gets.chop
password = gets.chop
print <<EOS
<HTML>
<head>
<meta http-equiv="content-type" content="text/html; charset=EUC-JP">
<title>アカウント認証</title>
</head>
<body bgcolor="skyblue">
EOS
if (hash_account[account] == password)
print "ようこそ、" #{account}"さん。それではゲームを始めましょう。"
elsif hash_account.has_key? account
print "パスワードが間違っているようです。"
else
print #{account}"というアカウントはありません。"
end
print <<EOS
</body>
</html>
EOS
動作環境はruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]になります。 よろしく、お願いします。
補足
変更しましたが、何も表示されませんでした。 何がいけないんでしょうか?