アプリ版:「スタンプのみでお礼する」機能のリリースについて

フォームに a または b または c または d を入力して送信した場合に「正解です」と表示しようとしています。
$nr = 1408;
$ant1 = ('a');
$ant2 = ('b');
$ant3 = ('c');
$ant4 = ('d');
$ant = htmlspecialchars(@$_POST['antwort']);
if (($ant == $ant1 or $ant == $ant2 or $ant == $ant3 or $ant == $ant4) and ($score_line[2] < $nr)){
print "正解です";
}
a または b を入力するとうまくいきますが、c と d はだめです。
どのようにしたらよいか、お教えください。よろしくお願いします。
$score_line[2] は テキストファイルから読み込んだ数値です。

A 回答 (2件)

なにかタイプミスじゃないですか?cでもdでもいけそうですけど



>($ant == $ant1 or $ant == $ant2 or $ant == $ant3 or $ant == $ant4)

ちなみにこう書くこともできます

in_array($ant,array($ant1,$ant2,$ant3,$ant4))
    • good
    • 1
この回答へのお礼

($ant == $ant1 or $ant == $ant2 or $ant == $ant3 or $ant == $ant4)

in_array($ant,array($ant1,$ant2,$ant3,$ant4))
と書き換えたら、できました。大助かりです。ありがとうございました。

お礼日時:2011/08/23 14:22

$_POST['antwort'] = "a";


$ant_arrya = array(1=>"a","b","c","d");
$ant = htmlspecialchars($_POST['antwort']);

if(array_search($ant,$ant_arrya)){
echo("正解です");
}else{
echo("不正解です");
}

こんな感じ。
これで正常に動いているんで、

$nr = 1408;
$_POST['antwort'] = "a";
$ant_arrya = array(1=>"a","b","c","d");
$ant = htmlspecialchars($_POST['antwort']);

if((array_search($ant,$ant_arrya)) && ($score_line[2] < $nr)){
echo("正解です");
}else{
echo("不正解です");
}

・・・
($score_line[2] < $nr)この辺が正しく動作しているのであれば、こんなんで動くはずデス。

ちなみに、元々書かれているソースもそんなに大ハズレな箇所は見られんので
結局
($score_line[2] < $nr)
の辺に問題があるように思えますけど、ね。
    • good
    • 0
この回答へのお礼

ありがとうございました。勉強になりました。

お礼日時:2011/08/23 14:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!