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


SESSION problem when using GET method in php

<?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>

嗨,我需要上面代码的帮助。

我想把一个变量传递给session。

在上面的代码中,我这样做了,但当我刷新页面或单击底部链接时,会话变量diss会出现。我想要echo $_SESSION['color'];粘性

我该怎么办?关于

无论是否存在这样的GET变量,都将赋值$_GET['color']。正因为如此,当没有$_GET['color']时,您就失去了会话变量。必须是:

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

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

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