Я начал изучать php в последнее время, так что я не очень хорош в этом.Я пытался создать систему входа в систему с php / ajax.Я перепробовал все, что мог, но, похоже, смог понять, откуда возникла настоящая проблема.Ajax не смог получить данные из моего файла process.php, хотя я уже добавил их в URL.Единственные коды, которые выполняются, это коды из индексного скрипта, но ничего из процесса.Мое подключение к базе данных в порядке.Просто, кажется, нет никакой связи между ajax и process.php.Вместо этого он просто выполняет код 'else' (data == true) в Ajax.Извините, я не могу выразить себя очень хорошо, но я просто надеюсь, что вы понимаете, что я имею в виду.Ниже приведены файлы, которые я создал.
вот класс member.php
<?php
class member {
public $table;
public function __construct(){
$this->table = "users";
}
//login check
public function check($username,$password,$conn){
$this->table = "users";
//$password_hash = md5($password);
$stmt = $conn->prepare("SELECT * FROM ".$this->table." WHERE
Username='$username' AND Password='$password' LIMIT 1");
$stmt->execute();
if($stmt->rowCount() > 0)
{
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
// print_r($row);
$_SESSION['id'] = $row['id'];
;
$_SESSION['email'] = $row['email'];
return true;
}
} else {
return false;
}
}
}
?>
вот файл process.php
<?php
session_start();
require_once('member.php');
//for login
if(isset($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];
if($username ==""){
echo "Please enter your email";
}
elseif($password == ""){
echo "Please enter your password";
}
else{
//connect to database
require_once('db.php');
//instantiate the member class
$member = new member();
$login_check = $member->check($username,$password,$conn);
if($login_check == true){
echo true;
}
else{
echo "Invalid email or password";
}
}
}
?>
и вот индексфайл, содержащий код ajax
<?php
//session_start();
include('header.php');
require_once('db.php');
require('process.php');
?>
<html lang="en">
<head>
<title>Login/Signup</title>
</head>
<body>
<div class="container">
<div class="content">
<div class="form">
<div id = "message"></div>
<ul class="tab">
<li><a href="">LOGIN</a></li>
<li><a href="">SIGNUP</a></li>
</ul>
<div class="tab-content">
<div class="login-tab">
<form id="login_form" method="post" class="login-
form" >
<div class="">
<input type="text" id = "username"
name="username" class="form-control" placeholder="Enter your Username">
</div>
<div class="">
<input type = "password" id = "password"
name="password" class="form-control" placeholder="Enter your Password">
</div>
<div><button type = "submit" id = "login"
name="login" class="btn btn-primary" >login</button></div>
</form>
<div class="clearfix"></div>
<p>Or Login with</p>
<ul class="alt-login">
<li><a href=""><img src=""></a></li>
<li><a href=""><img src=""></a></li>
<li><a href=""><img src=""></a></li>
</ul>
</div>
<div class="clearfix"></div>
<div class="tab_signup">
<form>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
<script type="text/javascript">
$( document ).ready(function() {
$("#login").click(function(e){
e.preventDefault();
var username = $("#username").val();
var password = $("#password").val();
var data = $("login_form").serialize();
$.ajax({
type : "POST",
url: 'process.php',
data : data,
success: function(data){
if(data==true){
$("#message").addClass('alert alert-success');
$("#message").html("Login successful");
$("#login").html('Redirecting..');
window.location ="dashboard.php";
}
else{
//alert(data);
$("#message").addClass('alert alert-danger');
$("#message").html('login failed');
$("#login").html('Failed');
}
},
error : function(jqXHR,textStatus,errorThrown){
if(textStatus ='error'){
alert('Request not completed');
}
$("#login").html('Failed');
},
beforeSend :function(){
$("#message").removeClass('alert alert-danger');
$("#message").html('');
$("#login").html('Logging in..');
},
});
// }
});
});
</script>
</html>
PS Я не беспокоюсь о хешировании пароля, потому что я все еще тестирую.