Session变量的URL变量(使用GET方法)

时间:2014-03-31 23:14:22

标签: php url get session-variables

我正在尝试将从URL变量获取的值存储到SESSION变量中。

以下是网址:

<a href="webpage.php?store=<?php echo 'Ace'; ?>">Ace Hardware</a>

这是SESSION编码,它检索变量,但在离开页面时丢失变量值。

$_SESSION["store"] = $_GET["store"];
$shopByStore = $_SESSION["store"];

如果我在下面插入引号中的值(参见下面代码中的“Ace”),它就可以了。但它在上面的代码中不起作用,使用GET方法($ _GET [“store”])

$_SESSION["store"] = "Ace";
$shopByStore = $_SESSION["store"];

2 个答案:

答案 0 :(得分:1)

问题是您每次都使用$_SESSION["store"]覆盖$_GET["store"]是否存在get请求,因此它基本上只使用$_GET["store"]。你可以改用它:

if (isset($_GET["store"])) {
    $_SESSION["store"] = $_GET["store"];
}

答案 1 :(得分:1)

首先,您需要启动session,然后确保它尚未存储在session中(如果它已在$_GET中传递)如果尚未保存在session中,则将其存储:

// The first line in your script
session_start();

if (isset($_GET["store"])) {
    if (!isset($_SESSION["store"])) {
        $_SESSION["store"] = $_GET["store"];
    }
}

详细了解PHP manual