在PHP中使用GET方法时的SESSION问题

时间:2011-07-16 09:44:49

标签: php session get

<?php session_start();?>

<a href="abc.php?color=red"> send the color </a>
<br><br>
<?php
@$_SESSION['color'] = $_GET['color'];
echo $_SESSION['color'];
?>

<br>
<br>
<a href="abc.php"> check the session variable </a>

喜 我需要上述代码的帮助。

我想将变量传递给会话。

使用上面的代码我这样做但会话变量在我刷新页面或单击底部链接时消失。我想要echo $_SESSION['color'];粘贴

我该怎么办? 关于

2 个答案:

答案 0 :(得分:3)

无论是否存在此类GET变量,您都要分配$ _GET ['color']的值。因此,当没有$ _GET ['color']时,你会丢失会话变量。 它必须是:

if (isset($_GET['color'])) {
    $_SESSION['color'] = $_GET['color'];
}
echo isset($_SESSION['color']) ? $_SESSION['color'] : '';

答案 1 :(得分:1)

$_GET['color']为空,因为color不在网址的查询字符串中时,您仍然会将该空值分配给$_SESSION['color']

不要这样做,您设置的值不会被覆盖。没有什么东西在消失。