1
php header("location: test.php")

不工作。但是java脚本重定向工作。

我试过header()不重定向?

header("location: test.php");

但我尝试使用java脚本它的工作

window.location ="http://www.test.com/test.php"

问题是什么。请给出一些解决方案

在调用标头之前没有回显(输出命令)

没有错误/警告消息

我的确切代码:

if($contlogin >0 && $LoginID!="")
{      
    $_SESSION['LoginID'] = $LoginID;
    if($_SESSION['currentUrl']) {
        header("location: http://".$_SESSION['currentUrl']);
    }
    else {
        if($LoginID==1) {
            header("location:admin/index.php");
        }
        else {
            header("location:dashboard.php");
        }
    }
}
else {   
    header("location:index.php?err=1");
}
4

8 回答 8

3

放置一个exit()之后 header("location: test.php");

于 2013-01-22T05:19:11.237 回答
2

检查您的 php 标签前是否有空格<?php

检查您的 error_reporting 是打开还是关闭,如果它关闭,请打开

于 2013-01-22T05:04:44.703 回答
2

听起来您的 PHP 中可能有错误,可能是语法错误。您可以从命令行运行 PHP 的 lint 检查器来查找错误:

php -l scriptname.php

或者,在 php.ini 中或在脚本运行时启用error_reporting可能会帮助您弄清楚发生了什么。

如果您还没有检查过,您的网络服务器的错误日志也可能会提供有关正在发生的事情的线索。

于 2013-01-22T05:11:06.853 回答
1

抱歉,在我得到我的代表之前我不能发表评论,所以我必须发布这个但是你的 php 开始标签之前可能只有一个空格,这导致标题不起作用......所以<?php它之前可能有一个空格或其他东西.. .

于 2013-01-22T05:05:48.973 回答
1

不应该l inlocation:应该是L

header("Location:test.php");

还要在 header() 之后使用 exit() 以避免任何问题并按照另一张海报的建议停止脚本的执行。

于 2013-01-22T05:22:14.057 回答
0

header() 不工作的一些原因;1. 如果 php 标签之前有空格,它将不起作用 2. 在 header() 之前的 echo 语句如果你发现了这个在 header() 之后添加 exit() 或 die()

于 2013-06-06T04:45:56.830 回答
0

您需要添加 ob_start(); 功能在 php 页面的顶部,然后重定向功能将正常工作。

链接: http: //php.net/manual/en/function.ob-start.php

于 2015-04-13T12:24:08.490 回答
0

您的 PHP 代码必须在页眉开始之前向页面发送一些信息。在我的例子中,我在正文部分有一些 JavaScript 代码。这会导致一些数据(尽管不是立即可见)导致该位置无法工作。

请检查您的日志以获取一些条目,例如:

[Mon Apr 13 13:53:29 2015] [error] [client 192.168.109.109] PHP Warning:  Cannot modify header information - headers already sent by (output started at /var/www/html/xxx.php:208) in /var/www/html/xxx.php on line 565, referer: https://www.acme.com/xxx.php

于 2015-04-13T11:30:56.573 回答