PHP调用header()函数不起作用

时间:2017-09-11 22:42:41

标签: javascript php html web

我在设置会话变量后尝试使用php更改页面。我从这段代码中调用函数

 echo "<a href='index.php?id=";

          echo $row['id'];
          echo "'><img src='images/pic_1.jpg'

正确调用该函数并设置变量,但页面永远不会重定向

&#13;
&#13;
    <?php 
      function getID() {
echo $_GET['id'];
session_start();
header("Location: home.php");
$_SESSION['id'] = $_GET['id'];

}

  if (isset($_GET['id'])) {
    getID();
  }
            ?>
  
&#13;
&#13;
&#13;

我已尝试使用确切的网址和文件名,但都没有用。如何同时使用页面重定向和$ _SESSION [&#39; id&#39;]变量?

2 个答案:

答案 0 :(得分:2)

必须在HTTP中的响应主体之前发送响应头。您的代码在调用echo之前包含header()语句(开始发送正文),因此发送标题无效。

答案 1 :(得分:0)

这很可能是因为你在告诉它重定向之前echoheader()函数要求在将任何数据发送到客户端之前运行它。在您的情况下,您之前是echo个ID。在您的PHP日志中,它可能会告诉您您尝试在其他数据之后发送标头。

如果你想制作转换页面,例如“重定向到等等等等”,那么你需要使用HTML重定向:

<meta http-equiv="refresh" content="1; url=/home.php" />

标签中的1表示在1秒延迟后重定向