Problem: When i click Login, it always Login Fail. But if i open HTML file with PHP only, it works fine. So the problem is Ajax i think. Im using Xampp with PHP 7
This is HTML file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="Login.js" ></script>
</head>
<body>
<div class="err" id="errDialog">
</div>
<form action="" method="post" id="login_form">
Username
<input type="text" name="username" id="username" >
Password
<input type="text" name="password" id="password" >
<input type="submit" name="login" id="login" value="Login">
</form>
</body>
</html>
This is Javascript file
$(document).ready(function() {
$('form').submit(function(event) {
event.preventDefault();
var form = $(this);
$.ajax({
url: './Login.php',
type: 'POST',
dataType: 'script',
data: form.serialize(),
})
.done(function(response) {
if (response == 1) {
$('#errDialog').html("Login success")
} else {
$('#errDialog').html("Login fail")
}
})
This is PHP file
$con = mysqli_connect('localhost', 'root', '', 'login');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if (isset($_POST['login'])) {
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$query = "select * from members where username='$username' AND password='$password'";
$run_query = mysqli_query($con, $query);
$num_rows = mysqli_num_rows($run_query);
if ($num_rows == 1) {
$_SESSION['sesUsername'] = $username;
echo 1;
} else {
echo 0;
}
}
Problem solved. I change Submit type from Input to Button. Delete isset('#login') part, its not necessary. And rewrite javascript ajax for button click event.