質問: urlの内容チェックがうまくいきません $_post['url']に何らかの値が格納されている場合のみ、正規表現で値をチェックしたいのですが、現在のソースでは$_post['url']が空の場合も処理が正規表現に移ってしまい、結果エラーが出てしまいます。 if ( isset($_post['url']) && preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-za-z0-9;\/?:\@&=+\$,%#]+)$/', $_post['url']) && mb_strlen($_post['url']) <= 100){ 【データベース登録処理】 }else{ echo "エラー:入力内容が正しくありません"; } issetあたりが怪しいとは思うのですが、!emptyでも駄目でした。 他に何か書き方がありましたらご教授ください。
回答: 既存のif文のさらに外側に、 「もし、$_post['url']が空じゃなかったら実行」 というif文を追加すると言うのではだめでしょうか。