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");
}
答案 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代码。这导致一些数据(虽然不是立即可见)导致该位置无法工作。
请检查您的日志以获取一些条目,例如:
[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;
答案 7 :(得分:0)
您需要添加ob_start();函数在php页面的顶部,然后重定向函数将正常工作。