こんばんわ。ホームページのフォームを使って色を三色選んでもらい、それに対して貴方はこんな方ですね、としたいのですが、
好きな色3色選んでください。
<form method="post" action="hoge.cgi">
<input type="checkbox" name="q1" value="赤">赤
<input type="checkbox" name="q1" value="青">青
<input type="checkbox" name="q1" value="黄">黄色
<input type="checkbox" name="q1" value="紫">紫
<input type="checkbox" name="q1" value="黒">黒
<input type="checkbox" name="q1" value="白">白
<input type="checkbox" name="q1" value="ピンク">ピンク
<input type="checkbox" name="q1" value="緑">緑
<br>
<br>
<input type="submit" value="結果を見る!!">
<input type="reset" value="取消"></form>
とフォームから3つ選んでもらい、送信します。
そして、perlで記述したCGIで、
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'});
$buffer .= $ENV{'QUERY_STRING'};
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name,$value) = split(/=/,$pair);
$out{$name} = $value;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
if ($name eq "q1") {
push (@check1,$value);
}
}
print "Content-Type: text/html; charset=Shift_JIS\n\n";
print "<html>\n";
print "<head><title>$title</title></head>\n";
print "<body>\n";
#配列の数個を数える。3個以外はプログラムを中止。
$num = $#check1;
if ($num ne 2){
print "3個選んでね。";
exit;
}
#もし配列の中身が次の3つだったら、"貴方は素敵ですね"と答える。
if (@check1 eq "黄","紫","黒"){ print "貴方は素敵ですね。";}
#elsif (){;}
else { print "ごめんね。データがないよ。";}
print "</body>\n";
print "</html>\n";
exit;
と、したのですが、どの色を選んでも、貴方は素敵ですね。としか、表示されません。赤と紫と黒を選んでも、同じです。配列を eq としている時点でどうかと思いますが、選んだ3つがイコールの場合、貴方は素敵ですねと表示されるようにしたいです。自分でも調べていますが、よろしかったら是非お教えください。
でわ。
No.1ベストアンサー
- 回答日時:
if (@check1 eq "黄","紫","黒"){ print "貴方は素敵ですね。
";}これがまずいんでは?
以下のようにすればどうでしょう。
my $check = join "," ,@check1;
if ($check =~ /黄/ && $check =~ /紫/ && $check =~ /黒/) { print "貴方は素敵ですね。"; }
ありがとうございました。早速これに変えたところ、まったく正常に動きました。しかも、色の順番を入れ替えても、まったく正常に動きました!!まるで魔法のようです。早く勉強したいです。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP php ログイン 1 2022/11/01 00:24
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスの返す値
-
フォームの入力内容の後ろに文...
-
心理テストページをCGIで作りた...
-
別formのhidden項目を自form値...
-
hiddenで送ったデータの取り出し方
-
ボタンの処理
-
アンケートの質問を複数にしたい
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
tracert ができない原因
-
入力フォームに全角・半角スペ...
-
ファイルのアップロードができ...
-
cgiで動画ファイルをアップロー...
-
onMouseoverで下線表示したい(...
-
HTML プルダウンメニューの選択...
-
perlで自動ログインをしたいが...
-
縦線、横線の作成
-
他のWWWサーバーからHTMLを得る
-
HTMLでテキスト読み込み
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックスの返す値
-
別formのhidden項目を自form値...
-
チェックボックスで選択した内...
-
Error: No Recipient というエ...
-
hiddenで送ったデータの取り出し方
-
ボタンの処理
-
チェックボックスでのvalue値の...
-
フォームの入力内容の後ろに文...
-
掲示板の文字色指定について
-
CGI→CGI変数の引き継ぎは...
-
携帯用アンケートページを作成...
-
フォームの年号リストの自動更新
-
クリップボードに記憶した文字...
-
メールフォームで良いサイト
-
複数の検索のページをつくりたい
-
CGIに渡しているパラメータを表...
-
複数ボタンのvalueを送れない
-
プルダウン&キーワードで
-
CGIでチェックボックスを使...
-
mail.cgiの記述について
おすすめ情報