【问题标题】:Remember URL in PHP session once记住 PHP 会话中的 URL 一次
【发布时间】:2017-08-24 13:23:16
【问题描述】:

所以,我一直试图让它工作一段时间。而且我无法让它像我想要的那样工作。

我想要做的是: 我有一个搜索和过滤页面(用户从复选框中选择对产品进行排序)。现在,当用户完成过滤时,URL 具有一组特定值。

https://mydomein.nl/subsdir/?_sft_brand=nike&_sft_type=sneaker

如果用户点击产品,它将显示产品页面。在那个页面上有一个按钮,上面写着Back to overview。目前它链接到/subdir/,但这会删除一组值(当然)。

我想将https://mydomein.nl/subsdir/?_sft_brand=nike&_sft_type=sneaker 这样的链接存储在会话中,这样用户就不必再次过滤。

我尝试使用此代码将REQUEST_URI 存储在会话中:

$page = $_SERVER["REQUEST_URI"];
$_SESSION['page'] = $page;
echo "http://".$_SERVER['SERVER_NAME'].$_SESSION['page'];

但是每次您点击新链接时都会更新 URL。我已经尝试了很多变体,但都覆盖了第一个REQUETS_URI。我想只存储过滤器 URL,而不是用户接下来单击的 URL。所以我可以将back to overview 链接设为<a href="<?php echo $page; ?>">。并始终将其链接回正确的过滤器等。

有什么好主意吗?感谢您花时间阅读和帮助!

【问题讨论】:

  • 检查是否 isset 会话,如果不是则设置值否则忽略。 - 基本上你想要的伪代码。

标签: javascript php jquery session


【解决方案1】:

您应该做的简单解决方案是,当用户单击返回概览按钮时,您应该引用一个在您使用相应参数或过滤器点击搜索按钮时调用的函数,您可以在搜索中检查会话

步骤

  • 搜索时首先使用post方法而不是get。
  • 首先在您的搜索功能中检查您的 $_POST 是否为空
  • 如果您的 $_POST 不为空,请在会话中设置您的帖子值并使用帖子值进行搜索。
  • 如果您的帖子为空,请检查您的会话是否为空。如果您的会话不为空,则使用您的会话值搜索并返回结果。
  • 如果您的会话为空,则不使用任何值搜索它(我的意思是检索所有产品并显示它)
  • 现在,当用户单击处理到概览时,然后重定向到搜索功能。

【讨论】:

  • 我明白你的意思。除了我不知道从哪里开始......唉......这整个php的东西有点新......
  • 如果您发布搜索功能。搜索表单,我可以做一些更改
  • 我会做更多的挖掘工作。感谢您的步骤,它将有助于分配。
猜你喜欢
  • 1970-01-01
  • 2015-08-09
  • 2012-08-18
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 2013-08-20
相关资源
最近更新 更多