PHP标头重定向无法按预期工作

时间:2011-06-10 16:30:52

标签: php redirect

我有以下问题。我收集一些用户输入,然后使用PHP将其写入文本文件。完成此操作后,我想重定向到另一个网页 - 这里是www.google.com。我遇到了困难。

$myFile = "testFile.txt";
$fh = fopen($myFile, 'a');
$IP = $_SERVER["REMOTE_ADDR"].',';
$logdetails=  $IP.date("F j, Y, g:i a O T");
$stringTimeout = $_POST['_delay'];
$stringData1 = $_POST['userChoices'];
$s = ',';
$postData = $s.$stringTimeout.$s.$stringData1"\n";
fwrite($fh,$logdetails.$postData);
fclose($fh);

header("Location: http://www.google.com");

7 个答案:

答案 0 :(得分:2)

标题方法真的很糟糕,而且缺少重定向方法真的很烦人。

我假设您已经收到“标题已设置”或“标题已发送到浏览器”。在这种情况下使用javascript而不是header方法。

//header("Location: http://www.google.com");    
echo "<script type='text/javascript'>location.href='http://www.google.se'</script>;";

答案 1 :(得分:1)

我在原始解决方案上粘贴了另一种替代方法。

适用于保罗的原始解决方案

fwrite($fh,$logdetails.$postData,'a');

这会强制fwrite修改文件,使用'w'选项会覆盖文件

我也用于多个变量的替代方案是:

$write_me = $logdetails.$postData;
fwrite($fh,$write_me);

答案 2 :(得分:1)

删除之间的空格 fclose($fh);header("Location: http://www.google.com"); 喜欢在

fclose($fh);
header("Location: http://www.google.com");

答案 3 :(得分:1)

有没有错误?

它可能没有关系,但在我看来,你在最后一个转义的“\ n”字符前忘记了一个点:

$postData = $s.$stringTimeout.$s.$stringData1."\n";

答案 4 :(得分:0)

如果您在另一个PHP中首先尝试重定向部分该怎么办? 分而治之! :)

嘿,如果这不起作用,检查你的html标题,我记得我遇到了html标题试图使用的问题:

标题(“位置:http://www.google.com”);

答案 5 :(得分:0)

尝试添加:

ob_end_flush();
exit();

在header()方法之后。

答案 6 :(得分:0)

我也曾多次面对这个问题。 我通过放一个die()来解决它;在标题的下一行(“位置:http://www.google.com”);

像这样

标题(“位置:http://www.google.com”); 模具();