gpt4 book ai didi

php - 离开页面时取消设置 session

转载 作者:行者123 更新时间:2023-12-04 14:00:49 26 4
gpt4 key购买 nike

如何在用户离开页面时取消设置 SESSION['variables'],而不必在我网站上的每个页面的顶部包含一些内容?

您可能知道的最佳实践是什么?

谢谢。

编辑

我有一个用于设置公司和客户的向导。这包括 2 页:1 页用于公司,1 页用于客户。如果用户想为客户重新使用在公司填写的数据,他可以选中复选框,当第 1 页(公司)的表单发布时,第 2 页(客户)的这些字段会自动设置(想想字段如:邮政地址、街道、电话等)。用户可以随时访问第 1 页和第 2 页,因此我必须取消设置 session ,否则它将继续自动填充字段。

我可以在第2页设置字段后取消设置 session ,但是当他刷新浏览器时,字段又变空了。这当然不是什么大问题,但是难道没有一种简单的方法可以仅在用户转到任何其他页面(无需退出浏览器并在我的网站内)时取消设置这些 session 吗?

编辑

我的代码:

公司页面:

$_SESSION['wizard2']= "true"; // used for manipulating page when entering in wizard mode
if (isset($_POST['savedata'])) // if user wants to re-use data from page1
{
$_SESSION['savedata'] = "true";
$_SESSION['custprovincesession']=mysql_real_escape_string($_POST['compprovince']);
header("Location:customer_page.php");
exit();

客户页面:

if (isset($_SESSION['wizard2'])) // used for manipulating page when entering in wizard 
{
unset ($_SESSION['wizard2']);
}
if (isset($_SESSION['savedata'])) // if user wants to re-use data from page1
{
$_SESSION['wizard3'] = "true";
}


<tr>
<th><label for="custprovince">Province:</label></th>
<th><input type="text" name="custprovince" style=width:200px id="custprovince" size="8" value="<?php if (isset($_SESSION['wizard3'])) { echo $_SESSION['custprovincesession'];}?>"/></th>
<th>&nbsp;</th>
<th>&nbsp;</th>
</tr>

在第 2 页的末尾:

if (isset($_SESSION['wizard3']))
{
unset ($_SESSION['wizard3']);
unset ($_SESSION['custprovincesession']);
}

正因为如此,通过刷新页面, session 被取消。当用户离开“customer_page.php”时,是否没有其他方法可以取消设置这些 session ?

最佳答案

这可能是个愚蠢的问题,但为什么要在每个页面上取消设置某些 session 变量?

当然, session 的目的是在页面浏览中持续存在,因此您只想在特定的触发点(例如用户注销系统)取消设置或清除它。

为了回答这个问题,许多框架通常会为所有脚本使用单一入口点,它会进行任何初始化,将实际页面工作交给 Controller ,然后返回到单一入口点。如果您使用这种方法,那么您可以将任何关闭逻辑放在页面末尾。

关于php - 离开页面时取消设置 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13509258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com