• ベストアンサー

空文字のエラーチェック(問い合わせフォーム)について

宜しくお願いします。 書籍を参考にして、PHPにて問い合わせフォームを作成しております。 初心者のレベルです。 問い合わせフォームに入力されたデーターの、 エラーチェック処理について、1点不明なところがあり、質問させて頂きます。 コメント入力欄があり、そこは1000文字以内で必須入力してもらいます。 そのためエラーチェックとして、下記のコードが書籍にあります。 function erro_check($check_data){ if(isset($check_date["comment"]) && $check_date["comment"]= = ="") {   $error_list[ ]="コメントを入力してください。";  }elseif(trim($check_date["comment"]) = = =""){ $error_list[ ]="コメントを入力して下さい。";  }elseif(mb_strlen($check_date["comment"]) > 1000){     $error_list[ ]="コメントは1000文字以内で入力してくださ     い。";  }  return $error_list; } 空文字入力のチェックが二度にわたって行われているような気がします。最初のif判定だけで、十分なような気が・・・。 もしくは、 if(isset($check_data["commento"]) && trim($check_data["comment"]) === ""){ ... } とすればいいのでは?と。。。 でも書籍の中のコードは、何か意味があってのものだと思います。 どなたか宜しくご教授くださいませ。 お願いします。

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

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.1

> 最初のif判定だけで、十分なような気が・・・。 > if(isset($check_date["comment"]) && $check_date["comment"]= = ="") { これは、「何も入力していない」の判定。 >  }elseif(trim($check_date["comment"]) = = =""){ これは、「入力したけれど、内容が空白だけ」の判定。 というわけで、両方あることには意味があると思います。 なお、 > if(isset($check_data["commento"]) && trim($check_data["comment"]) === ""){ もしもこのように書くとすれば、演算子は&&ではなくて||だと思います。

n-yuuki
質問者

お礼

有難うございます。 つまり、 最初のifでは、何も入力されずにPOSTされた場合の処置ですね。 なにも入力されずにPOSTされると、空文字がセットされるようです。 そして、2番目のifは、コメント欄に何かが入力されたのはされたが、 空白文字だけで埋められた場合に反応するような処置ですね。 じつに微妙な判定文だなと、初心者レベルで印象に残りました。 お答え有難うございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • masa6272
  • ベストアンサー率66% (93/140)
回答No.2

確かに冗長なコードですね。 それぞれの条件式に意味はありますが・・・ isset($check_date["comment"]) は、変数自身が設定されているか。 $check_date["comment"]==="" は、空文字列か。 trim($check_date["comment"]) ==="" は空白だけでできているか。 ただ、PHPに限って言えば、emptyを使って if(empty(trim($check_data['comment']))) で十分です。

n-yuuki
質問者

お礼

お答え有難うございます。 色々と勉強になりました。 empty()は、初めてみかけました。 これまた調べてみます。 有難うございました。

すると、全ての回答が全文表示されます。

関連するQ&A