こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

チェックボックスのうちひとつでもチェックがなければエラー

チェックボックスが複数個(5~6個)あります。

hajime.html
<form action="niban.php" method="post">
<input type="checkbox" value="A" name="CHK1" />
<input type="checkbox" value="B" name="CHK2" />
<input type="checkbox" value="C" name="CHK3" />
<input type="checkbox" value="D" name="CHK4" />
<input type="checkbox" value="E" name="CHK5" />
<input type="checkbox" value="F" name="CHK6" />
</form>
●このA~Fのうち、ひとつでもチェックされていなければ
チェックしてください。とエラー表示させたいのですが…



●次のページではこのようにデータを受取していします。

niban.php// フォームの値取得は下記のように行っています。
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$v = addslashes($v);
$$k = $v;
}
}
else {
exit();
}

$ErrFlg = 0;(エラーの時は$ErrFlgを1にします)

●エラー構文のサンプル↓
if ($name == "" ) {
echo "<p>名前を入力してください。";
$ErrFlg = 1;
}


どうぞお力をおかしください

投稿日時 - 2007-07-16 22:44:40

QNo.3173985

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

がると申します。一応その道の専門家として。
JavaScriptによる値のチェックはせいぜいが「利便性を高める」程度のものであり、「JavaScriptで値をチェックしたからエラーじゃない/エラーだ」と判定するのは論外な手法ですのでご注意ください。

あまりにも気になったので一言だけ。

投稿日時 - 2007-07-17 08:04:09

ANo.3

フォームのチェックはJAVASCRIPTで送信前にするほうが楽です。

どうしても受け側のページでエラー表示したいなら、javascriptで入力ミスの情報をhiddenで送るのがいいと思いますよ。

参考URL:http://www.tagindex.com/javascript/form/check4.html

投稿日時 - 2007-07-17 01:36:49

ANo.2

えーと、そもそも全てのPOSTデータを総攫いで取りこむやり方は
あまりセキュリティ上頭のよいやり方ではありません。

フォームを設定するのは自分なのですか、要素はCHK1~6だと
わかっているわけです。なので、ここは$_POSTのCHK1~6のみを
チェック対象とすべきです。

また・・・
>ひとつでもチェックされていなければ

というのは「全てをチェックしなくてはいけない」という意味でしょうか?
それとも「少なくともどれか一つをチェックしなくてはいけない」という
意味でしょうか?
普通に読めば前者だと思いますが、全てにチェックをつけるという
フローは無駄すぎます。そんなことをするくらいなら、項目を列記したのち
「全ての項目を承認した場合はチェックする」というようなインタフェースが
妥当ですね。

投稿日時 - 2007-07-16 23:36:53

ANo.1

大きなお世話かもしれませんが、JavaScriptで行った方が
いいのではないでしょうか?

投稿日時 - 2007-07-16 22:51:08

あなたにオススメの質問