ログイン画面を作っていまして、セレクトボックスでCさんを選択し、パスワードを間違えて入力(valueの値がパスだと思って頂いて結構です)したらログイン失敗メッセージを出して、リンクからログイン画面に戻れるように下記のコードになっているのですが、
セレクトボックスの値がAさんにリセットされてしまいます。この時、Aさんではなくて最初にセットしたCさんにセットする方法はどのようにするのでしょうか?
#ログイン画面用サブルーチン
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n";
print "<title></title>\n";
print "</head>\n";
print "<body>\n";
&analysis;
&auth;
sub analysis{
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/\r//g;
$FORM{$name} = $value;
}
$pass2 = $FORM{'password'};
return;
sub login{
print <<HEADER;
<center>
<caption>
<h1>ログイン</h1>
</cption>
<table border="5" bgcolor="cfcfcf" width="300" height="150">
<tr>
<td align="center" valign="center">
<form name="form" method="post" action="./rental.cgi">
ユーザー名:
<select name="user_name">
<option value="1" $check1>A</option>
<option value="2" $check2>B</option>
<option value="3" $check3>C</option>
</select>
<br>
<br>
パスワード:
<input type="password" name="password">
<br>
<center>
<input type="submit" name="submit" value="ログイン">
</center>
</form>
</td>
</tr>
</table>
</center>
HEADER
}
#ユーザー認証サブルーチン
sub auth{
use DBI;
$db_name = "bookmanagement";
$db_host = "localhost";
$db_user = "";
$db_password = "";
$db_table = "usertable";
$ID = $pass1;
$password = $pass2;
$conn = DBI->connect("DBI:Pg:dbname=$db_name;host=$db_host",$db_user,$db_password)||die "DBI connect failed: &DBI::errstr";
$sql = "select userID,pass from usertable where pass='$password'";
$result = $conn->prepare($sql);
$ref = $result->execute;
print <<HEADER;
<script type="text/javascript">
function henkyaku(id){
document.form.user_name.value=id;
document.form.submit();
}
// -->
</script>
HEADER
($db_userID,$db_password) = $result -> fetchrow_array();
$result -> finish;
if($pass2 eq ''){
&login;
}
elsif(($db_password eq $password) and ($db_userID eq $ID)){
&display;
}
else{
print "<center>";
print "ログインに失敗しました。<br>ユーザー名・パスワードを確認してもう一度ログインしてください。<br><br>";
print "<a href=\"./rental.cgi\" onClick=\"henkyaku('$pass1')\">" ."ログインページへ戻る"."</a>";
print "</center>";
}
$conn -> disconnect;
}
print <<FOOTER;
</body>
</html>
FOOTER
1;
No.1ベストアンサー
- 回答日時:
selected属性を追記すればできます
<option value="3" $check3 selected>C</option>
print "<a href=\"./rental.cgi\" onClick=\"henkyaku('$pass1')\">" ."ログインページへ戻る"."</a>";
も修正ですね
この回答への補足
nagare様返事が遅くなりすみません。ありがとうございます。
色々と試してみたのですが、結局分らなくなってしまい、戻るリンクをやめて、
エラーメッセージとログインページを同じページに出す事で回避出来ましたのでご報告させて頂きます
回答まで頂いたのに申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
VB2010 のユーザコントロールの...
-
Application.ScreenUpdating = ...
-
実行時エラー 3020の対策
-
VBAでPDFのコピーとリネームを...
-
VB6で、長い時間かかる処理...
-
dieやPerl自体でエラーが発生し...
-
プルダウンメニューで中央表示
-
C++ APIについて エラーコード...
-
16進の10進変換について
-
実行中の変数の中身をイミディ...
-
Perl メール 初心者
-
<SELECT>タグの折り返し
-
int(input("○○"))の使い方
-
Net::Telnetでタイムアウト時間...
-
auのiPhoneでの受信メールが文...
-
メタタグのキーワードはいくつ...
-
switch文のエラーについて
-
バッファリング処理を高速化し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
Perlでアルファベットを数...
-
リロード後にプルダウンの選択...
-
CGI(Perl)で、Net::FTPを使いたい
-
途中まで出来ているのですが‥(D...
-
VB2010 のユーザコントロールの...
-
【VB2005】メソッドに渡したデ...
-
複数行URLエンコードができるCG...
-
CGI作成中なんですが・・・
-
クリックしたら順番に並び替わ...
-
演算子について
-
linq で 楽天ウェブサービスのX...
-
受信データの分割
-
CGIでの表示の不具合について。
-
Excel VBAで行追加後の...
-
CGIからメールに書き出しする際...
-
【C#】数値の範囲チェックについて
-
Apacheで受信できません
-
掲示板のコメント欄にあらかじ...
おすすめ情報