Javascript 加载和会话ID不同步?
我想动态加载我的内容。它包含带有会话变量的php。我认为php工作得很好,但是会话变量是不可访问的。我的会话id有问题: index.php:Javascript 加载和会话ID不同步?,javascript,php,jquery,session,Javascript,Php,Jquery,Session,我想动态加载我的内容。它包含带有会话变量的php。我认为php工作得很好,但是会话变量是不可访问的。我的会话id有问题: index.php: <?php $session_name = 'sec_session_id'; $secure = SECURE; $httponly = true; if (ini_set('session.use_only_cookies', 1) === FALSE) { header("Location: ../error.php?err=Co
<?php
$session_name = 'sec_session_id';
$secure = SECURE;
$httponly = true;
if (ini_set('session.use_only_cookies', 1) === FALSE) {
header("Location: ../error.php?err=Could not initiate a safe session (ini_set)");
exit();
}
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"],
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly);
session_name($session_name);
session_start();
session_regenerate_id();
?>
<div class="sidebar">
<ul id="nav">
<li><a class="selected" href="#" data-target="page1">Dashboard</a></li>
<li><a href="#" data-target="page2">Pages</a></li>
</ul>
</div>
<?php echo session_id(); Print_r ($_SESSION); ?>
<div class="content" id="main-content">
<?php
include('pages/page1.php');
?>
我的Javascript:
<script>
$(document).ready(function(){
// Set trigger and container variables
var trigger = $('#nav li a'),
container = $('#main-content');
// Fire on click
trigger.on('click', function(){
// Set $this for re-use. Set target from data attribute
var $this = $(this),
target = $this.data('target');
if (!$this.hasClass("selected")) {
$("#nav li a").removeClass("selected");
$this.addClass("selected");
}
else {
event.preventDefault();
}
// Load target page into container
container.load('pages/' + target + '.php');
// Stop normal link behavior
return false;
});
});
</script>
$(文档).ready(函数(){
//设置触发器和容器变量
变量触发器=$(“#nav li a”),
容器=$(“#主要内容”);
//点击开火
trigger.on('click',function(){
//将$this设置为可重复使用。从数据属性设置目标
变量$this=$(this),
target=$this.data('target');
if(!$this.hasClass(“选定”)){
$(“#nav li a”).removeClass(“选定”);
$this.addClass(“选定”);
}
否则{
event.preventDefault();
}
//将目标页面加载到容器中
load('pages/'+target+'.php');
//停止正常链接行为
返回false;
});
});
和我的加载内容php文件:
<?php
session_start();
echo session_id();
Print_r ($_SESSION);
echo ' php works';
?>
如果我首先刷新index.php,所有内容都会正常加载。输出:
fodnkd14c3l4jkeunlakg81he5阵列([用户id]=>2)
fodnkd14c3l4jkeunlakg81he5数组([user_id]=>2)php工作
如果通过jquery load加载page1.php,则会得到以下输出:
fodnkd14c3l4jkeunlakg81he5阵列([用户id]=>2)
ti7eqnmrrjmeckg5tln3ml2c83数组()php工作
它看起来像是在jQuery.load之后在page1.php中的会话更改。没有会话时,重新生成会话id();它仍然不起作用。如何解决此问题?在进行任何输出之前,您应该使用session_start();以前没有输出。两个文件都以session_start()开头;在任何输出之前,应使用session_start();以前没有输出。两个文件都以session_start()开头;