PHP会话有时无法重启

时间:2015-08-29 17:37:46

标签: php session-state

我有一个PHP脚本,它将收据返回给在我的网站上购买的客户。当他们收到收据时,我希望能够开始新的会话。到目前为止,我在脚本末尾有一段代码返回收据页面。它是:

datepicker

当我使用网站并完成购买流程时,在提供收据页面后,会话ID保持不变。

然而,我把上面的代码放在一个名为“再生.php”的单独脚本中。然后我在另一个脚本中调用它,如下所示:

var d1s = new Date(2010, 8, 1),
    d1e = new Date(2010, 8, 5),
    d2s = new Date(2010, 8, 16),
    d2e = new Date(2010, 8, 20);
$(function() {
  $("#datepicker").datepicker({
    numberOfMonths: 1,
    beforeShowDay: function(date) {
      return [(date >= d1s && date <= d1e || date >= d2s && date <= d2e), ''];
    },
    minDate: d1s,
    maxDate: d2e
  });
});​

当我运行此脚本时,每次运行重新生成脚本时,会话ID都会更改。但是,相同的代码在重新启动会话之前尝试提供的目标页面中不起作用。

是否有任何理由可以在一个案例中而不是另一个案例中起作用?我认为这可能是因为文本已经写出来输出了,但是在两种情况下都会发生。

1 个答案:

答案 0 :(得分:0)

  

在将输出发送到浏览器后,您无法在同一请求期间生成新会话。

只是因为会话cookie已经发送 - 带有标题。因此,您对session_start()的第二次调用很可能会出错。

您可以在此处找到有关转动display_errors的更多信息:How do I get PHP Errors to display?