如何使用存储在ajax会话中的用户ID

时间:2016-04-03 19:51:58

标签: php jquery ajax session

当用户登录时,我将userid存储到会话中,然后我想将该用户ID传递给ajax以从数据库中检索其他信息。 存储在会话中的userid未传递给allResult.php 我的登录页面代码片段,我在那里进行会话:

  $msg = '';

  if (isset($_POST['login']) && !empty($_POST['username']) 
   && !empty($_POST['password']))
  {
   $username1 = $_POST['username'];
   $password1 = $_POST['password'];
   $password2 = md5($password1);
   $sql= "SELECT * FROM users WHERE userName='$username1' AND password='$password2'";
   if($query_run = mysqli_query($conn, $sql))
   {
    $query_num_rows = mysqli_num_rows($query_run);
    $stmt =mysqli_prepare($conn, $sql);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_store_result($stmt);
    if($query_num_rows==1)
    {
     $row = mysqli_fetch_assoc($query_run);
     $user_id =  $row['id'];
     $name=$row['Name'];
      //creating session

     $_SESSION['loggedin_time'] = time();
     $_SESSION['userid'] = $user_id;
     $_SESSION['name'] = $name;

   }
 }
  else {
       $msg = '*Wrong username or password';
     }
}

登录后,用户将被带到仪表板:

<?php 
  session_start();
  include("functions.php");
  if(isset($_SESSION["userid"])) {
    if(isLoginSessionExpired()) {
      header("Location:loginPage.php");
    }
  }
  if($_SESSION['userid']=="" && $_SESSION['name']==""){
    header("location: loginPage.php");
  }
  require 'dbconnect.php'; 
  $userId = $_SESSION['userid'];   
  echo "$userId"; 
  ?>
我在仪表板中的

尝试使用ajax

访问用户的其他数据
      <script id="source" language="javascript" type="text/javascript">


          $(function() {
            $( "#tabs" ).tabs({active:0});
            $.ajax({                                      
              url: 'allResult.php',
              method:"POST",
              data: ({uid:'$userId'}),                                                      
              dataType: 'json',                     
              success: function(data)         
              {

                var date=  data[0]['date'];
                   var time=  data[0]['time']; 
                   var ip=  data[0]['ip'];
                   var lux=  data[0]['lux'];
                   var press=  data[0]['press'];
                   var acc_x=  data[0]['acc_x'];
                   var acc_y=  data[0]['acc_y'];
                   var acc_z=  data[0]['acc_z'];



                   $("#tabs-1").html("<b>date: </b>"+date+"<b> time: </b>"+time+"<b> ip: </b>"+ip+"<b> lux: </b>"+lux+"<b> press: </b>"+press+"<b> acc_x: </b>"+acc_x+"<b> acc_y: </b>"+acc_y+"<b> acc_z: </b>"+acc_z);

             } ,
             error : function(request,error) 

             { 
              alert (error);
              alert("Request: "+JSON.stringify(request)); 
            } 

          });
});

我需要获取用户ID才能运行allResult.php allResult.php

<?php
ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    require 'dbconnect.php';
    $user_id =  $_POST["uid"]
    $sql_query = "SELECT * FROM data where id like '$user_id';";          
    $result = mysqli_query($conn,$sql_query);  
     if(mysqli_num_rows($result) >0 )  
     {  
     $row = mysqli_fetch_assoc($result);  

     $output [] = $row ;

     echo json_encode($output);
     }  
     else  
     {   
     echo "Error finding data..";  
     }  

    ?>

2 个答案:

答案 0 :(得分:0)

让所有用户登录的数据都被调用为json格式。

假设您拥有

下的所有数据
  

somedomain.com/userData.php

<?php
#userData.php

if ($user == "loggedin") {
  $data['name'] = $_SESSION[1]; //name
  $data['email'] = $_SESSION[2]; //email
  $data['extra'] = $_SESSION[3]; //etc.
  echo json_encode($data, JSON_PREETY_PRINT);
}
?>

然后使用jQuery Ajax实时获取数据。

答案 1 :(得分:-1)

看起来你缺少session_start()

相关问题