You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Session取值失效问题:是传递环节还是获取环节出错?

问题排查:加入用户ID后AJAX请求无数据返回

核心问题:JS未正确读取PHP变量

主页面的JS代码里,let korisnik = $korisnik;这一行是关键错误——PHP变量$korisnik没有通过PHP语法输出到JS环境中,导致JS里的$korisnik是未定义的变量,最终传给后端vratiZadatke.php的korisnik参数要么是空值,要么是undefined,用这种无效值做SQL查询条件自然查不到数据。

修复代码:把PHP变量用PHP标签输出到JS里(如果用户ID是字符串类型,记得加引号):

let korisnik = "<?php echo $korisnik; ?>";

其他潜在问题与优化点

  • 用户ID获取逻辑不完整:主页面只从Cookie读取用户ID,没考虑Cookie失效但Session仍有效的情况,建议优先从Session获取,再降级到Cookie:
session_start();
$korisnik = null;
if (isset($_SESSION["korisnik"])) {
    $korisnik = $_SESSION["korisnik"];
} elseif (isset($_COOKIE["korisnik"])) {
    $korisnik = $_COOKIE["korisnik"];
    // 同步更新Session,保持状态一致性
    $_SESSION["korisnik"] = $korisnik;
}
// 空值判断,避免无效请求
if (empty($korisnik)) {
    header("Location: login.php");
    exit();
}
  • 调试与SQL安全性:
    1. 可以在vratiZadatke.php临时添加调试代码,确认接收的参数是否正确:
    // 调试用,上线后删除
    var_dump($_GET);
    
    1. 确保Zadatak::vratiZadatke方法使用了预处理语句拼接SQL,既避免注入风险,也能保证参数正确传入查询条件。

内容的提问来源于stack exchange,提问作者user21626341

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:37:47