Php 如何使用ajax会话中存储的用户id
当用户登录时,我将用户id存储到会话中,然后我希望将该用户id传递给ajax以检索数据库中的其他信息。 存储在会话中的用户ID未传递到allResult.php 我进行会话的登录页代码段:Php 如何使用ajax会话中存储的用户id,php,jquery,ajax,session,Php,Jquery,Ajax,Session,当用户登录时,我将用户id存储到会话中,然后我希望将该用户id传递给ajax以检索数据库中的其他信息。 存储在会话中的用户ID未传递到allResult.php 我进行会话的登录页代码段: $msg = ''; if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password'])) { $username1 = $_POST['use
$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));
}
});
});
$(函数(){
$(“#tabs”).tabs({active:0});
$.ajax({
url:'allResult.php',
方法:“张贴”,
数据:({uid:'$userId'}),
数据类型:“json”,
成功:功能(数据)
{
变量日期=数据[0][“日期”];
变量时间=数据[0]['time'];
var ip=数据[0]['ip'];
var lux=数据[0]['lux'];
var press=数据[0]['press'];
var acc_x=数据[0]['acc_x'];
var acc_y=数据[0]['acc_y'];
var acc_z=数据[0]['acc_z'];
$(“#tabs-1”).html(“日期:+date+”时间:+time+“ip:+ip+”lux:+lux+”按:“+press+”acc_x:+acc_x+”acc_y:“+acc_y+”acc_z:+acc_z”);
} ,
错误:函数(请求、错误)
{
警报(错误);
警报(“请求:+JSON.stringify(请求));
}
});
});
我需要获取用户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..";
}
?>
将所有用户登录的数据转换为json格式
假设所有数据都在
somedomain.com/userData.php
然后使用jQuery Ajax实时获取数据。看起来您缺少session_start()那么问题出在哪里?我不想阅读所有代码,但我认为这可能会有所帮助。
用户id没有传递给allResult。phpBesides不正确,这个答案没有详细说明。如果你的答案只适合一行,你可能不应该把它贴出来。
<?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);
}
?>