我正在尝试创建一个简单的Ajax登录系统,我在login.php中有一个jQuery Ajax调用:
if(proceed){
var data = 'email='+tempEmail+'&pass='+tempPass;
var loginreq = $.ajax({
type: "POST",
url : "assets/tempusers.php",
cache: false,
data: data
});
loginreq.done(function(html) {
if(html=='true'){
window.location.replace('app.php');
}
else {
$("#loginRequest").before('<div class="alert alert-danger err" role="alert">Email or Password Is Not Correct</div>');
}
});
}
tempusers.php
文件就像:
<?php
session_start();
include 'conconfig.php';
$con = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);
$email = $_POST['email'];
$pass = $_POST['pass'];
$query = "SELECT * FROM tempusers WHERE user='$email' AND pass='$pass'";
$result = mysqli_query($con,$query)or die(mysqli_error());
$num_row = mysqli_num_rows($result);
$row=mysqli_fetch_assoc($result);
if( $num_row >=1 ) {
echo 'true';
$_SESSION['uName'] = $row['uName'];
}
else{
echo 'false';
}
?>
在我的app.php中我有
<?php
session_start();
if(!empty($_SESSION['uName'])){
header('Location: login.php');
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Secret Land</title>
</head>
<body>
<h1>Hi This is App</h1>
</body>
</html>
我确信我在框中输入了正确的用户电子邮件和密码,但是app.php没有显示出来!我也没有收到任何错误消息。
当我从页面中删除app.php的开头部分时,每件事都可以正常工作!
<?php
session_start();
if(!empty($_SESSION['uName'])){
header('Location: login.php');
}
?>
你能告诉我我做错了什么以及导致这个问题的原因吗?
答案 0 :(得分:2)
如果有效登录
$_SESSION['uName'] = $row['uName'];
所以是的,它不是空的
if(!empty($_SESSION['uName']))
假设它应该是
if(empty($_SESSION['uName']))
正确? :)