Button 会话变量内容和后退按钮

Button 会话变量内容和后退按钮,button,back,Button,Back,我在一系列页面的第1页上,将一些数据保存到会话中。我现在单击第1页上的链接并转到第2页。我再次将一些数据保存到同一个会话变量中。我多次这样做,将数据保存到同一个会话变量。现在,我多次单击“后退”按钮,返回到本系列的上一页。会话变量中将存在哪些数据?从系列的最后一页保存的数据或从我现在坐的页面使用“后退”按钮保存的数据。保存到会话的所有数据都将保留在会话变量中,直到您将其删除或会话过期。会话中的后退/前进/etc不会影响会话变量的内容-当然,除非通过加载页面您正在更改这些变量的内容。保存到会话中的

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

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

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

我假设您在谈论PHP-如果是这样,则$\u会话中保存的数据在按转到其他页面时不会更改,因为会话数据保存在服务器上。
简言之:无论导航如何,会话中始终会保存最后一次保存的数据。

我假设您谈论的是PHP-如果是这样,则在按转到不同页面时,$\u会话中保存的数据不会更改,因为会话数据保存在服务器上。 简而言之:在会话中,无论导航如何,您都将始终拥有上次保存的数据。

试试看:(假设您使用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>
<?php
session_start();
$_SESSION['page2'] = 'from page2';

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


page2.php:

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

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

var_dump($_SESSION['page1']);
var_dump($_SESSION['page2']);
试试看:(假设你使用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>
<?php
session_start();
$_SESSION['page2'] = 'from page2';

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


page2.php:

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

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

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

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

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

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

这完全取决于你希望它如何工作

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

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

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


这完全取决于您希望它如何工作。

您使用哪种语言?向我们展示您的代码您使用的是哪种语言?显示您的代码下面的评论不正确。通过“后退”按钮访问的页面将显示当时捕获的会话变量信息。作为一名Coldfusion开发人员,我可以证实这一点。唯一的例外是MobileSafari,正如下面的评论所示。当按下后退按钮时,大多数浏览器不会返回服务器(从缓存中检索数据)。MobileSafari不遵循这种模式。我目前正试图找到一种方法来解决这个问题。如果我找到一个解决方案,我会让你知道…@charlesrobtson:问题不是问点击按钮后“显示”什么,而是在会话变量(服务器端)中“存储”什么。即使浏览器继续在客户端显示缓存的旧数据,单击“上一步”也不会更改服务器端值。是。我同意。我想这就是我在之前的评论中所说的,虽然这是4年前发布的…下面的评论是不正确的。通过“后退”按钮访问的页面将显示当时捕获的会话变量信息。作为一名Coldfusion开发人员,我可以证实这一点。唯一的例外是MobileSafari,正如下面的评论所示。当按下后退按钮时,大多数浏览器不会返回服务器(从缓存中检索数据)。MobileSafari不遵循这种模式。我目前正试图找到一种方法来解决这个问题。如果我找到一个解决方案,我会让你知道…@charlesrobtson:问题不是问点击按钮后“显示”什么,而是在会话变量(服务器端)中“存储”什么。即使浏览器继续在客户端显示缓存的旧数据,单击“上一步”也不会更改服务器端值。是。我同意。我想这就是我在之前的评论中所说的,虽然这是4年前发布的。。。