我有一个页面可以加载邮件系统的邮件。此页面使用AJAX每秒加载external_content(另一页)。会话ID存储在URL中,因此我将其转移到external_content中的方法非常基础:
$got = $_GET['conversation_id'];
$_SESSION['id'] = $got;
然而,有一个问题。当在某人的帐户上同时打开多个会话时,每次重置另一个会话时(会话变量被重置),所以我需要防止这种情况发生。
因此,我不知何故需要将此GET变量传递到另一个我不能简单地使用$ _GET ['conversation_id']的页面,但我需要以某种方式进行,以便可以多次设置变量。 External_content显示在div中,所以我不确定是否将它与$ _POST一起传递。
大n00bie。请帮忙。
答案 0 :(得分:2)
您是说您需要在Ajax请求中传递会话ID吗?为此,请将其作为页眉中的变量添加到script
元素中。
<script>
var g_conversationID = "<?php echo $_GET['conversation_id']; ?>";
</script>
然后在你的请求中传递它:
$.get("mypage.php", {"conversation_id": g_conversationID}, function(data) {
// Handle content
});
您可以使用JavaScript从URL中解析它,但这种方法通常更容易。
答案 1 :(得分:1)
我假设在脚本中发送ajax请求正在寻找$ _SESSION ['id']?当你打开多个标签时,问题出在那里,他们都在看同一个变量。
因此,每当您发送该ajax请求时,请附上conversation_id
$.get( "YOURSCRIPT.php", {
convo_id: "<?= $_GET['conversation_id']; ?>",
});
然后在YOURSCRIPT.php中,你可以获取$ _GET ['convo_id']
而不是抓住$ _SESSION ['id']修改强>
@Dr。麦凯的方式和我刚才所说的一样。对不起,我错过了那个。
答案 2 :(得分:0)
当您的用户在当前页面上关注textarea时,您可以触发onfocus事件以进行ajax调用,以设置Session superglobal作为当前会话ID。