gpt4 book ai didi

返回上一页时 PHP 丢失 session 变量

转载 作者:行者123 更新时间:2023-12-02 15:28:05 24 4
gpt4 key购买 nike

我网站的主页有一个包含两个字段的表单:汽车品牌 (carmake) 和汽车型号 (carmodel)。提交后,它会将用户带到第二页,该页面显示有关用户在主页上输入的特定品牌和型号的信息。

我正在使用后处理方法将变量传递到第二页,在那里我使用两个变量开始一个新 session :

    <?php 
session_start();
$_SESSION['carmake']=$_POST['carmake'];
$_SESSION['carmodel']=$_POST['carmodel'];
?>

这很好用。在第 2 页上,我有一个指向使用相同的两个 session 变量的第 3 页的链接。所以在第 3 页,我用 session 函数启动页面, session 变量可供使用。到目前为止没问题。

从现在开始,我遇到了 2 个问题:

问题 1: 我在第 3 页上有一个链接回第 2 页的按钮。当我使用此按钮返回到第二页时,第二页不会回显 session 变量。但是,如果我使用浏览器的“后退”按钮返回到第二页,系统会要求我“确认重新提交”,然后第二页会正确回应 session 变量。

我的问题 1: 如何在不丢失 session 变量的情况下设计到以前访问过的页面的导航?

问题 2: 有没有办法避免在之前访问过的使用 session 变量的页面上“确认重新提交”(使用浏览器后退按钮时)?

(我是这里的新手,对于可能是一个非常简单的问题的长帖子提前道歉。)

最佳答案

问题1解决方案:

更改代码

<?php 
session_start();
$_SESSION['carmake']=$_POST['carmake'];
$_SESSION['carmodel']=$_POST['carmodel'];

<?php 
session_start();

if(isset($_POST['carmake']))
$_SESSION['carmake']=$_POST['carmake'];

if(isset($_POST['carmodel']))
$_SESSION['carmodel']=$_POST['carmodel'];

它只会在提交表单时设置 session 值(这是从 Form1 提交的),所以当您单击后退按钮时,它不会设置空白值并将保留最后一个 session 值)

问题2解决方案:

<?php 
session_start();

if(isset($_POST['carmake']))
$_SESSION['carmake']=$_POST['carmake'];

if(isset($_POST['carmodel']))
$_SESSION['carmodel']=$_POST['carmodel'];

if(isset($_POST['carmake']) || isset($_POST['carmodel'])){
# Redirect on same page when submitting the form
# will not ask for form submission when click back on browser page
header("Location: page2.php")
exit;
}

关于返回上一页时 PHP 丢失 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29376156/

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