在这里我有一个关于验证注册表单验证在PHP
- 下面的代码工作很好,但它是还好用这么多
elseif
几个问题吗? 我也将使用客户端验证,所以我可以在同一页上同时拥有服务器端验证和客户端验证代码。
if($firstname == "") { $er='Enter your First name'; } elseif($lastname == "") { $er='Enter your Last name'; } elseif($firstname == $lastname) { $er='First name and last name cannot be same'; } elseif($username == "") { $er='Enter your username'; } elseif($password == "") { $er='Enter your password'; } elseif(strlen($password) < 6) { $er='Password must be more than 6 characters'; } elseif($password != $password2) { $er='Password and confirm password does not match!'; } elseif($email != "" && !preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST["email"])) { $er='Enter valid email'; } elseif($q->rowCount() > 0) { // $q is statement used to select username from db $er='The username '.$username.' is already taken!'; } elseif($s->rowCount() > 0) { // $s is statement used to select email from db $er='The email '.$email.' is already registered, choose another!'; } else { // some pdo statement to insert data if ($stmt->rowCount() == 1) { header("Location:userarea.php"); } else { echo "error"; } }
1.是的,这很好,只要它的可读性(这是)。 2.如果你愿意,客户端代码将在浏览器中以另一种语言(js)运行,因此不会发生冲突。你可能会发现你有更好的组织,如果你把它分成一个js文件虽然 – Steve
你应该单独测试每个字段,并收集数组中的错误消息,一次输出所有。但是,如果您也使用JavaScript进行验证,那么只要后端是安全的,就可以忽略此步骤,将重点放在项目中的其他重要事项上。 – Ultimater