あなたの習慣について教えてください!!

アンケートフォームを作る勉強をしています。
氏名やメールアドレスなどが未記入の場合にエラーとして登録できないようにするにはどうしたらいいでしょうか

PHPの勉強をはじめてまだ数日なので参考書片手にやっている状態なのですが
is_nullというのがあったので
<?php
if(is_null($_POST['name"])){
print("<p>ERROR:氏名が未記入です。<br>");
}else{
$result1=($_POST['t_fname']);
}
?>
こんな具合にやってみたのですがうまく動きませんでした
どのようにやったらいいかアドバイスお願いします。

A 回答 (2件)

tabun0622さんはじめまして、papillon68と申します。



氏名やメールアドレスを入力する部分を
<input type="text"・・・>
で作成していると推測しての回答です。


◆text(テキスト)
submitが押されるとその時入力されている値が送信されます。
未入力の場合は空白です。("")

◆select、option(コンボボックス)
submitが押されるとその時選択中のvalueが送信されます。

◆checkbox(チェックボックス)
submitが押されるとチェックが入っていればvalueが送信され、チェックが入っていなければそのチェックボックス自体は送信されません。
$_POST['チェックボックスのname']が未定のような感じです。

◆radio(ラジオボタン)
submitが押されると選択されているラジオボタンのvalueが送信され、チェックが入っていなければそのラジオボタン自体は送信されません。

◆submit(サブミット)
押されたサブミットボタンのみが送信されます。



ですので、
> if(is_null($_POST['name"])){
の場合ですと

if($_POST['name'] == "") {

とすると未入力かどうかが判断できます。


チェックボックスやサブミットボタンの場合ですと

if(isset($_POST['name']))

とすると送信されたかどうかが判断されます。
この方法はよく使われているように思います。


例えば、以下のようにするとサブミットボタン(send)がおされなければ、登録処理は行われません。
--------------------------------------------------
<?php
 // sendが押されたかどうか
 if(isset($_POST['send'])) {
  // nameが未入力ではないか
  if($_POST['name'] == "") {
   print("<p>ERROR:氏名が未記入です。<br>");
  }else{
   $result1=($_POST['t_fname']);
  }
 }
?>
<form>
氏名:<input type="text" name="name">
<input type="submit" name="send">
</form>
--------------------------------------------------
    • good
    • 0
この回答へのお礼

papillon68さんはじめまして。
親切なアドバイスありがとうございます。

nameが空白("")だったらエラーメッセージを出す
という考え方でよかったんですね
確かにそちらのほうが後からみたときにも
わかりやすいかもしれませんね。

参考のソースを元にもういちど作り直してみます
手元にある参考書にはissetに関して記されてなかったので
もう少し詳しく書いてある参考書も手に入れてみようと思います。

お礼日時:2006/01/12 16:21

$a=''


の場合、is_null($a)は false になります。
empty($a) や $a=='' が true になります。

参考URLにもサンプルがあります。

参考URL:http://jp2.php.net/is_null
    • good
    • 0
この回答へのお礼

なるほど!
だからいっつもfalseのほうしか実行されないんですね
is_nullについて根本的に考え方をちょっと間違えていたみたいです。

紹介してもらったアドレスを参考に
もういちど確認してみようと思います。
アドバイスありがとうございました。

お礼日時:2006/01/12 16:15

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


おすすめ情報