我是jQuery的新手,我在 login.js 文件中使用post方法向 login.php发送请求脚本并根据已输入的表单数据的性质检索错误消息。
我的所有错误消息都在工作,并在浏览器中正确显示。我的问题是,当用户输入有效的登录凭据时,我想将它们重定向到主页。相反,jQuery将我的结果用于成功登录并将其插入login_error div。
我出错的任何想法?
login.js :
$(document).ready(
function login_error()
{
$("#login").click(function(event)
{
event.preventDefault();
var postData = $('#login_form').serialize();
$.post('login.php', postData, function(result)
{
if(result != "match"){
$('#login_error').html(result);
}else{
window.location = 'home.php';
}
});
});
});
的login.php :
<?php
include "core/init.php";
$username = $password = "";
if(isset($_POST['username']) && isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($username) || empty($password)){
echo '<p class="alert-danger">You didn\'t fill in all the fields.</p>';
}else if(user_exists($username) === false){
echo '<p class="alert-danger">The username you entered doesn\'t match any account in our records. Sign up for an account.</p>';
}else if(user_verified($username) === false){
echo "<p class='alert-danger'><strong>".$username."</strong> is not a verified username. Check your inbox for a verification email.</p>";
}else if(check_details($username, $password) === false){
echo '<p class="alert-danger">The login details you entered don\'t match our records.</p>';
}else{
log_in($username, $password);
}
}else{
echo '<p class="alert-danger">Oops - something broke! We\'re working to fix this, check back soon.</p>';
}
?>
我的 log_in 功能:
function log_in($username, $password){
$db = mysqli_connect('localhost', 'root', '', 'forum');
$sql = "SELECT user_id FROM users WHERE username = ?";
$stmt = mysqli_prepare($db, $sql);
if($stmt){
mysqli_stmt_bind_param($stmt, 's', $username);
mysqli_stmt_bind_result($stmt, $user_id);
mysqli_stmt_execute($stmt);
mysqli_stmt_fetch($stmt);
if(!empty($user_id)){
$_SESSION['id'] = $user_id;
$_SESSION['user'] = $username;
echo 'match';
}else{
return false;
}
}
}
答案 0 :(得分:0)
如果您的剩余代码工作正常,则只需更改window.location
代码window.location.href = "home.php";
此处href用于位置重定向
答案 1 :(得分:0)
成功时,您可以在php登录功能中使用header("Location: home.php");
。喜欢:
if(!empty($user_id)){
$_SESSION['id'] = $user_id;
$_SESSION['user'] = $username;
header("Location: home.php");
}else{
return false;
}