電子書籍の厳選無料作品が豊富!

***** HTML *****
<TD>
<INPUT type="radio" name="ABC_*" value="登録する">登録する 
<INPUT type="radio" name="ABC_*" value="登録しない">登録しない
</TD>

***** CGI *****
$family = "ABC";
if($name eq "$family"){ $family=$value; }

現在、上記のような記述で作っているのですが、
チェックを入れても、入れなくても、「入力エラー」
になりません。
他の項目については、OKなんですが。。。
どのように、入力チェックをすればいいのですか?

**ちなみに、OKな項目の記述です。**
***** HTML *****
<TD>登録カテゴリー:</TD>
<TD>
<select name="カテゴリー_*">
<option value="" selected>選  択
<option value="自動車関連">自動車関連
<option value="お役立ちサイト">お役立ちサイト
<option value="HP作成支援">HP作成支援
<option value="お店のHP">お店のHP
<option value="個人のHP">個人のHP
<option value="その他">その他
</select></TD>
***** CGI *****
$catego = "カテゴリー";
if($name eq "$catego"){ $catego=$value; }

A 回答 (2件)

No.1 補足のスクリプトをみましたが・・どこかのフリースクリプトの改造なんでしょうか?


トリッキーというか、定石を無視しているというか・・

本題ですが、ラジオボタンやチェックボックスは、チェックが付いていないとその情報が全く送信されません。
例えば、
  <INPUT type="checkbox" name="a" value="1">
というチェックボックス(ラジオボタンでも同様)があったとして、チェックがついている場合は「a=1」が送信されますが、チェックされない場合「a=」という“フォームが存在する”という情報さえも送信されないのです。

このスクリプトは送信された内容をだけを見て、name に「_*」が付加されている場合のみ必須チェックを行っているので、チェックされていないチェックボックスやラジオボタンの必須チェックができないのです。

単にラジオボタンを入力必須にしておきたいなら、HTMLでどちらかのラジオボタンに checked をつけておけば大丈夫です。
(その時点で、必須チェックにする必要もなくなりますが。)

もし不正なフォームからの送信に対して必須チェックを行う場合、このスクリプトでは対処できません。
根本からの見直しが必要となります。
    • good
    • 0

どのようなチェック処理を行っているのでしょうか。



>$family = "ABC";
>if($name eq "$family"){ $family=$value; }

$name,$valueは何ですか?
HTMLからCGIへどのように値を受け渡しているのでしょうか?
エラーをだす処理も書いていませんよね。
それも教えてください。
これだとただ値を比較して同じ場合に値を変数に入れるだけの処理です。

この回答への補足

どこを書き出せばいいのかわからなかったので、
下記にUPしてみました。

htmlの記述
http://www.ae.wakwak.com/~doup/html.htm

cgiの記述
http://www.ae.wakwak.com/~doup/cgi.htm

フリーcgiの改造なんです。
UPした方法で使用すると、「登録する」「登録しない」の
どちらも選ばなくても、入力エラーとして認識されません。
自分でも、いろいろといじってみたのですが、
どちらかを選ぶと入力エラーがでてしまい、
その逆を設定することができませんでした。

よろしくお願いします。

補足日時:2002/12/13 17:06
    • good
    • 0

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