我有一个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都会更改。但是,相同的代码在重新启动会话之前尝试提供的目标页面中不起作用。
是否有任何理由可以在一个案例中而不是另一个案例中起作用?我认为这可能是因为文本已经写出来输出了,但是在两种情况下都会发生。
答案 0 :(得分:0)
在将输出发送到浏览器后,您无法在同一请求期间生成新会话。
只是因为会话cookie已经发送 - 带有标题。因此,您对session_start()
的第二次调用很可能会出错。
您可以在此处找到有关转动display_errors的更多信息:How do I get PHP Errors to display?