gpt4 book ai didi

php - 如何从 URL 中删除特定的 $_GET 变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:58:45 24 4
gpt4 key购买 nike

我有一个用 PHP 编写的网站,每当用户收到错误时,我会将他们重定向到另一个页面(使用 header(Location:...))并将错误 ID 放入URL,以便我知道要显示哪个错误。

例如如果用户尝试访问产品页面但该商品不再可用,我将重定向回他们之前查看的商品类别,并根据我在 URL 中指定的错误 ID 显示错误。

www.example.com/view_category.php?product_category_id=4&error_id=5

这种方法有两点我不喜欢:

  1. 它在 URL 中显示 error_id。
  2. 如果刷新页面,错误仍然会显示。

有没有一种方法可以在页面加载后从 URL 中彻底删除特定的 $_GET 变量,同时保持其余变量不变?

我在想也许它正在使用 modRewrite 或重定向回页面本身,但从 URL 中删除 error_id 或使用 $_SESSION 变量并避免将 error_id 放在 URL 中。你的想法?

我真的从这个社区学到了很多东西,并且认为如果我提出这个问题,我可能会学到一些新东西或获得一些不同的想法,因为我对脚本编写还很陌生。

最佳答案

不,没有办法明确地做到这一点 - 至少在没有页面刷新的情况下不行,但无论如何你都会丢失数据。

最好使用临时 session 变量。

if ( /* error condition */ )
{
$_SESSION['last_error_id'] = 5;
header( 'Location: http://www.example.com/view_category.php?product_category_id=4' );
}

然后,在view_category.php

if ( isset( $_SESSION['last_error_id'] ) )
{
$errorId = $_SESSION['last_error_id'];
unset( $_SESSION['last_error_id'] );

// show error #5
}

关于php - 如何从 URL 中删除特定的 $_GET 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1209903/

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