如果在 PHP 中使用 header 而不是通常的 HTML link,则不会显示 ID

ID is not shown if using header in PHP instead of usual HTML link

 <a    href='page.php?id=$_SESSION[id]'>My page</a>

在这种情况下,它看起来像 page.php?id=11

但是当我想访问另一个页面而不是显示必须由用户单击的 link 时,我得到 page.php?id=$_SESSION[id]

header('Location: http:/page.php?id=$_SESSION[id]'); 

为什么?怎么改?

如果您使用单引号 ',则需要从字符串中取出变量。你也应该像这样使用绝对地址;

header('Location: http://www.domain.com/page.php?id=' . $_SESSION['id']);

或者,您可以使用双引号,然后用花括号将变量括起来(因为它是一个数组变量)。

header("Location: http://www.domain.com/page.php?id={$_SESSION['id']}"); 

只是想我会注意到第二个示例是在字符串中包含变量的首选方法,因为 PHP 编译器只需要在内存中存储一​​件事,而不是在连接字符串时继续添加分配。