使用jQuery AJAX设置PHP Session失败,请求排查问题原因
问题原因与解决方案
问题出在**music_pro.php没有初始化会话**:
当AJAX请求直接调用music_pro.php时,这个文件里没有执行session_start(),PHP的$_SESSION数组并未被初始化,所以你在admin_prompt函数里对$_SESSION['ad']的赋值根本不会被保存到会话中。
虽然music.php里有session_start(),但AJAX请求的是独立的music_pro.php文件,这是两个完全独立的HTTP请求,会话必须在每个需要操作Session的PHP文件中单独启动。
修复步骤
在music_pro.php的最顶部添加session_start(),确保在任何输出之前调用:
session_start(); // 新增这一行 if(isset($_POST['fn'], $_POST['args'])){ $fn = $_POST['fn']; $args = $_POST['args']; $fn(...$args); } function admin_prompt($str){ if($str == 'lorem'){ $_SESSION['ad'] = 1; echo 'ok'; } }
这样修改后,AJAX请求music_pro.php时会正确初始化会话,$_SESSION['ad']的赋值就能被正常保存,刷新页面后music.php里的echo $_SESSION['ad']就能输出内容了。
内容的提问来源于stack exchange,提问作者provance
相关产品推荐
相关产品推荐

