Ajax PHP 响应登录



我正在尝试通过我的login.jslogindata.php通过我的login.php做出回应,但是我似乎总是收到错误消息Something went wrong! Try again.(我自己的自定义消息login.js),即使我写了正确的登录详细信息

登录.php

<form name="loginform" id="loginform" autocomplete="off">   
<div class="form-group">
<input type="text" name="username" maxlength="12" class="form-control" placeholder="Username" id="username" required/>
</div>
<div class="form-group">
<input type="password" name="password" maxlength="12" class="form-control" placeholder="Password" id="password" required/>
</div>
<input id="login" type="submit" class="btn btn-primary btn-block" value="Login"/>
<a href="/register" class="btn btn-info btn-block">Register</a>
</form>

登录.js

$(function () {
var action = '';
var form_data = '';
$('#login').click(function () {
action = $("#loginform").attr("action");
form_data = {
username: $("#username").val(),
password: $("#password").val(),
is_ajax: '1'
};
$('#login').keypress(function (e) {
if (e.which == 13) { //Enter key pressed
$('#login').click();
}
});
$.ajax({
type: 'POST',
url: 'logindata.php',
data: form_data,
success: function (response) {
if (response == 'success') {
$("#loginform").slideUp('slow', function () {
$("#message").html('<script>location.reload();</script><div class="alert alert-success">Logged in. Reloading...</div>');
});
} else {
$('#message').hide().html("<br/><div class="alert alert-danger">Something went wrong! Try again.</div>").fadeIn('fast');
}
console.log(response);
}
});
return false;
});
});

登录数据.php

<?php
if(!isset($_SESSION['uid'])){
header("Location: /home")
}
if (!isset($_POST['submit'])){
header("Location: /home")
} else {
$mysqli = new mysqli("localhost","root","root","maplexeno");
if ($mysqli->connect_errno) {
echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
exit();
}
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * from accounts WHERE username LIKE '{$username}' AND password LIKE '{$password}' LIMIT 1";
$result = $mysqli->query($sql);
if (!$result->num_rows == 1) {
$_SESSION['uid'] = $username;
echo "success";
} else {
echo "false";
}
session_start();
}
?>      

您可能收到标头输出,或者日志中session_start()错误。你必须把session_start()放在logindata.php脚本的最顶端,紧接着<?php,先于其他任何事情。

<?php
session_start();
// rest of your code...

您可以尝试在登录中执行以下操作.js以查看正在生成哪些 PHP 错误,而无需转到日志文件。

success: function (response) {
alert(response);

如果问题不是session_start(),这应该可以帮助您跟踪问题

最新更新