• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:php を使用しての入力チェック方法)

PHP入力チェック方法

このQ&Aのポイント
  • PHPを使用してドロップダウンリストで選択された値の入力チェックを行う方法についての質問です。
  • 現在、preg_matchなどを使用して試行錯誤していますが、うまく動作しない問題に直面しています。
  • 下記のサイトでホームページの改ざんを防止するための入力チェックに興味を持ち、ドロップダウンリストを使用したチェック方法を知りたいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

別に想定したデータのチェック自体はする必要はないですが、 どうしてもというならこんな感じでホワイトリストをつくり マッチしない場合エラーにすればよいのでは? <?php $errmsg=""; $whitelist["menu"]=Array("未選択","東京","千葉","埼玉","群馬","海外"); if(isset($_REQUEST["menu"])){ if(!in_array($_REQUEST["menu"],$whitelist["menu"])) $errmsg="NG!!"; $selected["menu"][$_REQUEST["menu"]]=" selected='selected'"; } if($errmsg) print $errmsg; else echo <<<eof <form> <p> お問い合わせ内容のカテゴリ<br> <select name="menu" id="menu"> <option value="未選択"{$selected["menu"]["未選択"]}>▼選択して下さい</option> <option value="東京"{$selected["menu"]["東京"]}>東京 - Tokyo</option> <option value="千葉"{$selected["menu"]["千葉"]}>東京 - Chiba</option> <option value="埼玉"{$selected["menu"]["埼玉"]}>埼玉 - Saitama</option> <option value="群馬"{$selected["menu"]["群馬"]}>群馬 - Gunma</option> <option value="海外"{$selected["menu"]["海外"]}>海外 - Kaigai</option> </select><br> <input type="submit" value="go"> </p> </form> eof; ?>

Deep-Forest
質問者

お礼

有難うございました。 おかげで何とか解決できました。 for文で何とかしようとあれこれ試行錯誤して 何とかなったのですが、こちらの方がスッキリしてるので 使わせて頂きました。 また何かありましたら宜しくお願い致します。

その他の回答 (1)

  • 1minn
  • ベストアンサー率57% (52/90)
回答No.2

デバッグしてみました? MenuValue関数に渡された値を画面出力でもしてみれば、答えは出そうですが。 function MenuValue($v,$r) {   echo 'r => '. $r .'<br>';   echo 'post[menu] => '. $_POST['menu'] .'<br>'; ・ $vは固定なので引数にする必要もなさそう。 ・ 一致しなかった時のreturn値を定義しないのがちょっと気持ち悪い。 のは気にはなりますが、普通に動きそうにみえます。 でも動かないのは・・・ ・文字コードが一致してない ・POST先が違ってる ・menuって名前が重複してる とか、そんな感じでしょうか?

Deep-Forest
質問者

お礼

ご回答頂き有難う御座います。 取り敢えずこのソースで問題なく動作してるのですが・・・ アドバイス頂いた箇所、再度見直してみますネ!?

関連するQ&A

専門家に質問してみよう