使用header()在注销页面中重定向php

时间:2012-09-21 11:20:07

标签: php header

  

可能重复:
  Headers already sent by PHP

我想重定向到某个页面,所以我尝试这样做。

www.example.com/logout.php?redirect=www.index-page.com/index.php
         echo $redirect = "'Location: http://".$_GET['redirect']."'";
       //redirects to index
       header($redirect);

但它不适合我。还有什么建议。

6 个答案:

答案 0 :(得分:4)

这样的事情:

在退出链接中:

<a href="http://www.example.com/logout.php?redirect=<?=urlencode('http://www.index-page.com/index.php')?>"> Logout </a>

在logout.php页面上:

<?
    // destroy session
    header('location:'.urldecode($_GET['redirect']));
    die();
?>

答案 1 :(得分:2)

如果不能生成echo

,则不能在标题前使用Warning: Cannot modify header information - headers already sent by
    $redirect = "Location: http://". $_GET['redirect'];
    header($redirect);

答案 2 :(得分:1)

您不应该需要额外的'

$redirect = "Location: http://".$_GET['redirect'];

答案 3 :(得分:1)

以下是将用户重定向到Google的示例

$link='http://Google.com';
header("location: $link");

你可以把它变成一个功能

function redirectUser($link){
    header("location: $link");
}

然后你可以把它称为

redirectUser('http://google.com');

或者

echo redirectUser('http://google.com');

不会发生错误!

我建议你在重定向代码之后使用die();来中止提交代码

答案 4 :(得分:0)

您只能在没有redirect的情况下使用echo

header("Location: http://".$_GET['redirect']);

答案 5 :(得分:0)

问题出在这里

echo $redirect = "'Location: http://".$_GET['redirect']."'";
//redirects to index
header($redirect);

您不必在标头之前使用echo,这将导致警告header already sent

像这样使用

$redirect = "Location: http://".$_GET['redirect'];
//redirects to index
header($redirect);