刷新http://mydomain.com后,它会生成一个随机ID以显示在页面上。
例如,http://mydomain.com第一次生成54,重新加载时生成,等等。
我想将每个随机生成的ID保存到会话中,所以每次重新加载时,我都可以回到最后一个。例如,第一次将54保存到会话中,当http://mydomain.com重新加载并生成112时,我可以链接回54.
我无法使用HTTP_REFERER或REQUEST_URI,所以我尝试使用自己的版本,但它只保存一次。我无法弄清楚如何在查看下一个ID时更新它。
if(empty($_SESSION['lastURL'])) {
$_SESSION['lastURL'] = $submissionId; // $submissionId is randomly generated
} else {
echo $_SESSION['lastURL'];
}
是我目前的代码。我应该在哪里更新会话以存储下一个ID?
原因是它保持失火的原因是因为它不断发出额外的ajax请求,所以我每次都会得到一个随机生成的id。
我(在朋友的帮助下)通过使用以下代码计算出来,并在每次随机触发之前进行设置:
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest'){
// Not an ajax request - just a normal page load
$_SESSION['lastid'] = $_SESSION['currentid'];
$_SESSION['currentid'] = $submissionId;
}
答案 0 :(得分:2)
您只需设置$_SESSION['lastURL']
一次,因为它只有empty()
一次。每当生成新ID时,您都需要更新此值(从而使其成为新的“旧”ID。)
答案 1 :(得分:1)
请记住在存储和阅读会话的文件顶部放置session_start()
,以便您可以完全访问这些会话
答案 2 :(得分:1)
如果要保存所有ID,则需要将它们放在一个数组中:
if (!isset($_SESSION['url_list']))
{
$_SESSION['url_list'] = array();
}
$_SESSION['url_list'][] = $submissionId;
// see all entries
var_dump($_SESSION['url_list']);
现在,您有自会话开始以来所有ID的历史记录。