2017-05-20 20 views
0

私はajaxを使用して申し込みフォームを検証しています。誰かが私にエラーが表示されている理由を答えることができます:未定義の変数:emailcheck。それはその前の行で明確に定義されています。ありがとうございました。以下にコードを示します。あなたが何か行うことができます電子メールチェック変数がエラーを返します。定義されていないとエラーが返されます

<?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'は、定義されていないブロックが実行された場合は2の1を意味し、それ以外のブロックは実行されません。 – Ananth

+0

$ emailcheck = 0を定義する必要があります。上のPHPコード –

答えて

0

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

それを解決しました。どうもありがとう。私はそのようなelse文の中でif文を開くことができなかった。貴重な教訓を私は覚えています。再度、感謝します。 –

+0

我々はお互いを助けるためにここにいるが、あなたがこの答えが有用であることがわかったらそれを受け入れることを忘れないでください。 –

+0

どのように答えを受け入れるのですか?私はオーバーフローのスタックオーバーに新しいです –

関連する問題