2017-08-16 8 views
0

アカウントにテーブルが作成されていてもログインできませんが、新しく作成したアカウントを入力すると「間違ったユーザー名またはパスワード」というエラーメッセージが表示されます。クエリを実行しようとすると、それはちょうどif($count !== 1) echo '<div class="alert alert-danger">Wrong Username or Password</div>';で終わります、私はここで間違っている何か?データベースから何かと関係しているかもしれませんが、助言してください。ログインフォームのクエリを実行できません

image regarding issue

session_start(); 

include("connection.php"); 

$missingEmail = '<p><stong>Please enter your email address!</strong></p>'; 
$missingPassword = '<p><stong>Please enter your password!</strong></p>'; 

if(empty($_POST["loginemail"])){ 
    $errors .= $missingEmail; 
    }else{ 
    $email = filter_var($_POST["loginemail"], FILTER_SANITIZE_EMAIL); 
} 
if(empty($_POST["loginpassword"])){ 
    $errors .= $missingPassword; 
}else{ 
$password = filter_var($_POST["loginpassword"], FILTER_SANITIZE_STRING); 
} 

if($errors){ 

$resultMessage = '<div class="alert alert-danger">' . $errors .'</div>'; 
echo $resultMessage; 
}else{ 

$email = mysqli_real_escape_string($link, $email); 
$password = mysqli_real_escape_string($link, $password); 
$password = hash('sha256', $password); 
    $sql = "SELECT * FROM users WHERE email='$email' AND password='$password' AND activation='activated'"; 
$result = mysqli_query($link, $sql); 
if(!$result){ 
echo '<div class="alert alert-danger">Error running the query!</div>'; 
exit; 
} 
    $count = mysqli_num_rows($result); 
//If email & password don't match print error 
if($count !== 1){ 
echo '<div class="alert alert-danger">Wrong Username or Password</div>'; 
} 
else { 
$row = mysqli_fetch_array($result, MYSQLI_ASSOC); 
$_SESSION['user_id']=$row['user_id']; 
$_SESSION['username']=$row['username']; 
$_SESSION['email']=$row['email']; 

} 
} 
} 

index.jsが$errors変数がまだ作成されていないため、それは意志私はあなたが$errors .= $missingPassword;を持って見ることができるものから

$("#loginform").submit(function(event){ 
//prevent default php processing 
event.preventDefault(); 
//collect user inputs 
var datatopost = $(this).serializeArray(); 
console.log(datatopost); 

$.ajax({ 
    url: "login.php", 
    type: "POST", 
    data: datatopost, 
    success: function(data){ 
     if(data == "success"){ 
      window.location = "mainpageloggedin.php"; 
     }else{ 
      $('#loginmessage').html(data); 
     } 
    }, 
    error: function(){ 
     $("#loginmessage").html("<div class='alert alert-danger'>There was an error with the Ajax Call. Please try again later.</div>"); 

    } 

}); 

}); 

答えて

0

ファイルlogin.phpファイル既にエラーチェッカーで連結しようとすると、エラーが発生します。

エラー変数に最初にヌル値を割り当てて、その部分を修正できます。

$errors = ''; 
if(empty($_POST["loginemail"])){ 
    $errors .= $missingEmail; 
} else { 
    $email = filter_var($_POST["loginemail"], FILTER_SANITIZE_EMAIL); 
} 
if(empty($_POST["loginpassword"])) { 
    $errors .= $missingPassword; 
} else { 
    $password = filter_var($_POST["loginpassword"], FILTER_SANITIZE_STRING); 
} 
関連する問題