전자 메일 (이미 데이터베이스에 있음) 만 입력하면 비어있는 필드의 다른 오류와 함께 오류가보고됩니다. 요청한 내용을 채우고 내가 선택한 전자 메일은 다른 사용자가 이미 사용하고 있습니다그러나 양식을 완전히 채우면, 이미 사용 된 전자 메일로는 전자 메일이 이미 사용 중임을보고하지 않습니다. 입니다. 전자 메일 필드를 포함하여 다른 입력 필드 (잘못 처리 된 경우)는 오류를보고하지만 양식이 완전히 채워지면 가용성을 확인할 수 없습니다. 초점 이메일 그것 자체의 손실, 경우 당신은 다음 최종 사용자 HTML 페이지를 새로 고침하는 경우 동안, 당신은 왜 가능 여부를 확인하지 않는PHP 사용자 이름/이메일 가용성이 작동하지 않습니다.
<?php
if(isset($_POST['submit']))
{
if (empty($_POST["firstName"])) {
$Err[] = "* First Name is required";
} else {
$name = test_input($_POST["firstName"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$Err[] = "Only letters are allowed in First Name";
}
}
if (empty($_POST["email"])) {
$Err[] = "* Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address syntax is valid
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
$Err[] = "Invalid email format";
} else {
$emailSQL = "SELECT email FROM userdetails WHERE email = ?";
$SQ = $conn->prepare($emailSQL) or die("ERROR: " . implode(":", $conn->errorInfo()));
$SQ->bindParam(1, $email);
$SQ->execute();
$result = $SQ->fetch();
if($result > 0) {
$Err[] = "Sorry, email is already in use by another user";
}
}
}
if (empty($_POST["surname"])) {
$Err[] = "* Surname is required";
} else {
$surname = test_input($_POST["surname"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$Err[] = "Only letters are allowed in Surname";
}
}
if (empty($_POST["password"])) {
$Err[] = "* Password is required";
} else {
$password = test_input($_POST["password"]);
}
if (empty($_POST["userName"])) {
$Err[] = "* Username is required";
} else {
$username = test_input($_POST["userName"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$Err[] = "Only letters are allowed in Username";
}
}
}
?>
'/ ([\ w \ -] + \ [\ w \ -] + \. [\ w \ -] +) /'적절한 이메일 주소 유효성 검사기에 가까이 있지 않습니다. @ example.com'? – tadman