我在设置会话变量后尝试使用php更改页面。我从这段代码中调用函数
echo "<a href='index.php?id=";
echo $row['id'];
echo "'><img src='images/pic_1.jpg'
正确调用该函数并设置变量,但页面永远不会重定向
<?php
function getID() {
echo $_GET['id'];
session_start();
header("Location: home.php");
$_SESSION['id'] = $_GET['id'];
}
if (isset($_GET['id'])) {
getID();
}
?>
&#13;
我已尝试使用确切的网址和文件名,但都没有用。如何同时使用页面重定向和$ _SESSION [&#39; id&#39;]变量?
答案 0 :(得分:2)
必须在HTTP中的响应主体之前发送响应头。您的代码在调用echo
之前包含header()
语句(开始发送正文),因此发送标题无效。
答案 1 :(得分:0)
这很可能是因为你在告诉它重定向之前echo
。 header()
函数要求在将任何数据发送到客户端之前运行它。在您的情况下,您之前是echo
个ID。在您的PHP日志中,它可能会告诉您您尝试在其他数据之后发送标头。
如果你想制作转换页面,例如“重定向到等等等等”,那么你需要使用HTML重定向:
<meta http-equiv="refresh" content="1; url=/home.php" />
标签中的1表示在1秒延迟后重定向