【发布时间】:2014-06-30 00:24:53
【问题描述】:
我按照 wikihow 教程构建安全会话管理系统:http://www.wikihow.com/Create-a-Secure-Session-Managment-System-in-PHP-and-MySQL
而且效果很好。
现在,当像这样调用 2 个连续的 ajax 时,会话 id cookie _s 会发生变化(并登录信息),我有一个问题:
<input type="button" value="go" id="mybutton" />
<script>
$("#mybutton").click( function() {
$.get("ajax1.php");
$.get("ajax2.php");
});
</script>
ajax1.php 和 ajax2.php 都只需要会话类文件
<?php
require('session.class.php');
$session = new session();
$session->start_session('_s', false);
?>
点击按钮后,存储在 _s cookie 中的会话 ID 会更改为新的。我像这样在两个 ajax 之间添加了一个警报
<input type="button" value="go" id="mybutton" />
<script>
$("#mybutton").click( function() {
$.get("ajax1.php");
alert("anything");
$.get("ajax2.php");
});
</script>
通过分离两个 ajax 调用,会话 ID 没有改变。
编辑: 实际的代码不是这样的,而是很多单独的按钮,每个按钮都有它的ajax,但是碰巧用户在响应之前连续单击按钮。
<input type="button" value="go" id="mybutton" />
<script>
$("#mybutton").click( function() {
$.get("ajax1.php");
});
</script>
<input type="button" value="go" id="mybutton2" />
<script>
$("#mybutton2").click( function() {
$.get("ajax2.php");
});
</script>
有什么想法吗??
【问题讨论】: