php header(“location:test.php”)无效。但javascript重定向工作

时间:2013-01-22 05:03:04

标签: php javascript

php header("location: test.php")

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

我试过header()没有重定向?

header("location: test.php");

但我尝试使用java脚本工作

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

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

在调用header之前没有echo(输出命令)

没有错误/警告信息

我的确切代码:

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");
}

8 个答案:

答案 0 :(得分:3)

exit()

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

答案 1 :(得分:2)

检查php标记<?php

之前是否有空格

检查你的error_reporting是打开还是关闭,如果它已关闭

答案 2 :(得分:2)

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

php -l scriptname.php

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

如果您尚未检查,您的网络服务器的错误日志也可能提供了发生了什么的线索。

答案 3 :(得分:1)

对不起我不能发表评论,直到我得到我的回复,所以我得发布这个 但是你的php开始标记可能只有一个空格,这导致标题无法工作......所以<?php可能有一个空格或之前的东西......

答案 4 :(得分:1)

location:中的 l 不应该 L

header("Location:test.php");

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

答案 5 :(得分:0)

不工作header()的一些原因; 1.如果在php标签之前有空格它就不会工作 2. header()之前的echo语句  如果你在header()

之后发现了这个添加exit()或die()

答案 6 :(得分:0)

你的PHP代码必须在标题开始之前向页面发送一些信息。在我的例子中,我在body部分有一些JavaScript代码。这导致一些数据(虽然不是立即可见)导致该位置无法工作。

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

&#13;
&#13;
[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
&#13;
&#13;
&#13;

答案 7 :(得分:0)

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

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