こんばんわ。ホームページのフォームを使って色を三色選んでもらい、それに対して貴方はこんな方ですね、としたいのですが、
好きな色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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスの返す値
-
CGIでチェックボックスを使...
-
CGIで得た内容をHTMlページに代入
-
ボタンの処理
-
チェックボックスで選択した内...
-
チェックボックスでのvalue値の...
-
CGIで書き出したJavaScriptの動...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
select値をhiddenのvalueに渡し...
-
VB.net データーグリッドビュー...
-
[HTML]プルダウンメニューの横...
-
プログラミングについての質問...
-
表示を一覧表形式にしたいので...
-
proftpdで困ってます。
-
perlにおけるセッションIDについて
-
cgi-libを使って変数値渡しをし...
-
ブックマークからのアクセスを...
-
IIS の@INC ERRORについて教えて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックスの返す値
-
Error: No Recipient というエ...
-
別formのhidden項目を自form値...
-
CGIでチェックボックスを使...
-
cgiにSSLをつけたい
-
1つのformに2つのsubmitボタン
-
掲示板の文字色指定について
-
アンケートフォームがうまく動...
-
「利用規約の同意」チェックボ...
-
hiddenで送ったデータの取り出し方
-
cgi(サイト内検索?)について。
-
チェックボックスでのvalue値の...
-
VBAでWEBもっと見るを押して...
-
再度:cgiから別のcgiへ...
-
メール送信フォームで。
-
チェックボックスで選択した内...
-
テキストエリアのデータを隠し...
-
クリップボードに記憶した文字...
-
FC2 掲示版のカスタマイズの仕...
-
アンケートで質問を複数ページ...
おすすめ情報