2011-08-29 14 views
0

我在页面1上的一系列页面并将一些数据保存到会话中。我现在单击第1页上的链接并转到第2页。我再次将一些数据保存到相同的Session变量中。我多次将这些数据保存到同一个Session变量中。我现在点击后退按钮几次返回到系列中的上一页。会话变量中将存在哪些数据?从系列的最后一页保存的数据或我现在坐在使用后退按钮的页面中的数据。会话变量内容和后退按钮

+0

您正在使用哪种语言?向我们显示您的代码 – JMax

回答

2

保存到会话中的所有数据都保留在会话变量中,直到您将其删除或会话过期。会话中的Back/forward/etc不会影响会话变量的内容 - 除非加载页面,您将更改这些变量的内容。

+0

以下评论不正确。通过后退按钮访问的页面将显示当时捕获的SESSION变量信息。作为一名Coldfusion开发人员,我可以证实这一点。 Mobile Safari是唯一的例外,它充当下面的评论。按下后退按钮时,大多数浏览器都不会返回服务器(从缓存中检索数据)。移动Safari不遵守这个范例。我目前正试图找到解决方法。我会让你知道,如果我找到解决方案... –

0

我假设你在谈论PHP--如果是这样,那么保存在$ _SESSION中的数据在按下不同页面时不会改变,因为会话数据保存在服务器上。 简而言之:无论导航如何,您都将始终保留上次保存的会话数据。

1

试一试:(假设你使用PHP)

page1.php中:

<?php 
session_start(); 
$_SESSION['page1'] = 'from page1'; 

var_dump($_SESSION['page1']); 
var_dump($_SESSION['page2']); 
?> 
<br /><a href="page2.php">page 2</a> 

使page2.php:

<?php 
session_start(); 
$_SESSION['page2'] = 'from page2'; 

var_dump($_SESSION['page1']); 
var_dump($_SESSION['page2']); 

转到第1页,点击链接到page2,点击返回。 您会看到$_SESSION['page2']的值仍然具有您设置的值。

0

会话变量中将存在哪些数据?

无论您将数据放在那里,直到覆盖它(或删除它)或会话过期。无论用户使用浏览器做什么或者他们如何从一个页面移动到另一个页面,会话都不受用户/浏览器的控制。它由您的服务器端代码控制。

如果用户在执行完页面请求后执行请求,那么会话值将发生什么变化完全取决于您。如果您的代码假设用户来自页面3并更新会话值以指示在页面4上,则会话值将被更新。如果您的代码检查会话值中以后的状态并保留该状态,则会话值不会更新。

这完全取决于你如何使它工作。