使用Ajax,jQuery和PHP设置会话的问题

时间:2014-10-08 19:56:31

标签: php jquery ajax

我正在尝试创建一个简单的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');
 }
?>

你能告诉我我做错了什么以及导致这个问题的原因吗?

1 个答案:

答案 0 :(得分:2)

如果有效登录

$_SESSION['uName'] = $row['uName'];

所以是的,它不是空的

if(!empty($_SESSION['uName']))

假设它应该是

if(empty($_SESSION['uName']))

正确? :)