Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加载和会话ID不同步?_Javascript_Php_Jquery_Session - Fatal编程技术网

Javascript 加载和会话ID不同步?

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。我认为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=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()开头;