アプリ版:「スタンプのみでお礼する」機能のリリースについて

宜しくお願いします。
書籍を参考にして、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"]) === ""){
...
}
とすればいいのでは?と。。。
でも書籍の中のコードは、何か意味があってのものだと思います。
どなたか宜しくご教授くださいませ。
お願いします。

A 回答 (2件)

> 最初のif判定だけで、十分なような気が・・・。



> if(isset($check_date["comment"]) && $check_date["comment"]= = ="") {
これは、「何も入力していない」の判定。

>  }elseif(trim($check_date["comment"]) = = =""){
これは、「入力したけれど、内容が空白だけ」の判定。

というわけで、両方あることには意味があると思います。
なお、

> if(isset($check_data["commento"]) && trim($check_data["comment"]) === ""){
もしもこのように書くとすれば、演算子は&&ではなくて||だと思います。
    • good
    • 0
この回答へのお礼

有難うございます。
つまり、
最初のifでは、何も入力されずにPOSTされた場合の処置ですね。
なにも入力されずにPOSTされると、空文字がセットされるようです。
そして、2番目のifは、コメント欄に何かが入力されたのはされたが、
空白文字だけで埋められた場合に反応するような処置ですね。

じつに微妙な判定文だなと、初心者レベルで印象に残りました。

お答え有難うございました。

お礼日時:2008/08/10 17:13

確かに冗長なコードですね。


それぞれの条件式に意味はありますが・・・

isset($check_date["comment"]) は、変数自身が設定されているか。
$check_date["comment"]==="" は、空文字列か。
trim($check_date["comment"]) ==="" は空白だけでできているか。

ただ、PHPに限って言えば、emptyを使って
if(empty(trim($check_data['comment'])))
で十分です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/10 17:16

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