登録フォームを作成しているとします。以下のようなコードがあり、ネストされたすべての if ステートメントのために管理が困難です。
以下にあるものと同様に機能するコードを記述するための、最もクリーンで簡単な方法を知りたいです。
EDIT : empty($_POST['email']) を検証関数に移動できると人々から言われました。1)ユーザーがデータを投稿したかどうか、2)ユーザーが投稿したデータが有効かどうかを知る必要があるため、それはできません。
たとえば、ユーザーが最初に登録ページにアクセスしたとき、データは投稿されていないため、$_POST['email'] はデータが存在しないため PHP 警告を生成します。そのため、検証する前にデータが投稿されているかどうかを確認しています。
これは理にかなっていますか?
function validate_email($str) {
$str = trim(strtolower($str));
if(!filter_var($str, FILTER_VALIDATE_EMAIL)) {
return false;
} else {
return $str;
}
}
function validate_password($str) {
$str = trim($str);
if(strlen($str) < 5 || strlen($str) > 70) {
return false;
} else {
return $str;
}
}
$email = false;
$password = false;
$errorMessage = false;
if(!empty($_POST['email'])) {
$email = validate_email($_POST['email']);
if($email) {
if(!empty($_POST['password'])) {
$password = validate_password($_POST['password']);
if($password) {
createNewUser($email,$password);
} else {
$errorMessage = "The password is not valid";
}
} else {
$errorMessage = "The password is not valid";
}
} else {
$errorMessage = "Email address is invalid";
}
} else {
$errorMessage = "Email address is invalid";
}
if($errorMessage) echo $errorMessage;