2017-05-20 2 views
0

Ich validiere mein Anmeldeformular mit Ajax. Kann jemand bitte antworten, warum ich einen Fehler erhalte: Undefinierte Variable: emailcheck. es ist klar in der Zeile davor definiert. Vielen Dank. Hier ist der Code unten.Warum gibt meine E-Mail-Prüfvariable einen Fehler als nicht definiert zurück

<?php 
session_start(); 
include '../dbh.php'; 




if (isset($_POST['submit'])) { 

    $first = $_POST['first']; 
    $last = $_POST['last']; 
    $email = $_POST['email']; 
    $pwd = $_POST['pwd']; 

    $errorEmpty = false; 
    $errorEmail = false; 



if (empty($first) || empty($last) || empty($email) || empty($pwd)) { 
    echo "<span class='signup-error'>Please fill out all fields!</span>"; 
    $errorEmpty = true; 
    } 

elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    echo "<span class='signup-error'>Please enter a valid email address!</span>"; 
    $errorEmail = true; 
    } 


else { 
    $sql = "SELECT email FROM user WHERE email='$email'"; 
    $result = mysqli_query($conn, $sql); 
    $emailcheck = mysqli_num_rows($result); 
} 


if ($emailcheck > 0) { 
    echo "<span class='signup-error'>That email address already exists!</span>"; 
    $errorEmail = true; 
    } 



else { 
    $encryptpwd = password_hash($pwd, PASSWORD_DEFAULT); 
    $sql = "INSERT INTO user (first, last, email, pwd) 
    VALUES ('$first', '$last', '$email', '$encryptpwd')"; 
    $result = mysqli_query($conn, $sql); 

    } 

} 


?> 


<script> 
$("#signup-first, #signup-last, #signup-email, #signup-pwd").removeClass("input-error"); 

    var errorEmpty = "<?php echo $errorEmpty; ?>"; 
    var errorEmail = "<?php echo $errorEmail; ?>"; 

if (errorEmpty == true) { 
    $("#signup-first, #signup-last, #signup-email, #signup-pwd").addClass("input-error"); 
} 

if (errorEmail == true) { 
    $("#signup-email").addClass("input-error"); 
} 

if (errorEmpty == false && errorEmail == false) { 
    $("#signup-first, #signup-last, #signup-email, #signup-pwd").val(""); 
} 

</script> 
+0

'$ emailcheck' ist nicht definiert, bedeutet eine der 2, wenn Blöcke ausgeführt werden, aber auch Block wird nicht ausgeführt. – Ananth

+0

so müssen Sie $ emailcheck = 0 definieren; oben in PHP-Code –

Antwort

0

Sie können wie etwas tun:

if (isset($_POST['submit'])) { 

    $first = $_POST['first']; 
    $last = $_POST['last']; 
    $email = $_POST['email']; 
    $pwd = $_POST['pwd']; 

    $errorEmpty = false; 
    $errorEmail = false; 



if (empty($first) || empty($last) || empty($email) || empty($pwd)) { 
    echo "<span class='signup-error'>Please fill out all fields!</span>"; 
    $errorEmpty = true; 
} 

elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    echo "<span class='signup-error'>Please enter a valid email address!</span>"; 
    $errorEmail = true; 
} 


else { 
    $sql = "SELECT email FROM user WHERE email='$email'"; 
    $result = mysqli_query($conn, $sql); 
    $emailcheck = mysqli_num_rows($result); 

    if ($emailcheck > 0) { 
    echo "<span class='signup-error'>That email address already exists!</span>"; 
    $errorEmail = true; 
    } 



else { 
    $encryptpwd = password_hash($pwd, PASSWORD_DEFAULT); 
    $sql = "INSERT INTO user (first, last, email, pwd) 
    VALUES ('$first', '$last', '$email', '$encryptpwd')"; 
    $result = mysqli_query($conn, $sql); 

    } 

} 

} 
+0

Das löste es. Vielen Dank. Mir war nicht bewusst, dass ich eine if-Anweisung in einer else-Anweisung öffnen konnte. eine wertvolle Lektion, an die ich mich erinnern werde. Danke noch einmal. –

+0

wir sind hier, um einander zu helfen, aber bitte, wenn Sie diese Antwort nützlich finden, vergessen Sie nicht, es zu akzeptieren. –

+0

Wie akzeptiere ich die Antwort? Ich bin neu zu stapeln Überlauf –

Verwandte Themen