Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP标头重定向未按预期工作_Php_Redirect - Fatal编程技术网

PHP标头重定向未按预期工作

PHP标头重定向未按预期工作,php,redirect,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']; $stringDat

我有以下问题。我收集一些用户输入,然后使用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");

我在原始解决方案上粘贴了一个替代方案对不起

对paul有效的原始解决方案

fwrite($fh,$logdetails.$postData,'a');
这将强制fwrite修改文件,使用“w”选项将覆盖该文件

我对多个变量也使用的替代方法是:

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

当涉及到这个问题时,header方法真的很糟糕,缺少重定向方法真的很烦人

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

//header("Location: http://www.google.com");    
echo "<script type='text/javascript'>location.href='http://www.google.se'</script>;";
//标题(“位置:http://www.google.com");    
echo“location.href=”http://www.google.se';";
删除
fclose($fh)
标题(“位置:”)
喜欢


如果您先在另一个PHP中尝试重定向部分会怎么样。 分而治之!:)

嘿,如果这不起作用,请检查您的html标题,我记得我在尝试使用html标题时遇到了问题:

标题(“位置:”)

没有任何错误吗

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

$postData = $s.$stringTimeout.$s.$stringData1."\n";
尝试添加:

ob_end_flush();
exit();

在你的header()方法之后。

我也多次遇到过这个问题。 我用骰子把它解决了;在标题的下一行(“位置:”)

像这样的

标题(“位置:”);
模具()

你到底有什么困难?发生了什么?你能告诉我们更多的细节吗?你以前输出过什么吗?那就不行了!我打赌你的一些代码抛出了一个你没有看到的错误。一个错误是在脚本完成之前停止脚本,或者在
标题
之前有输出,这也会引发一个错误。我建议您确保您的服务器没有抑制错误消息,这将使调试更加容易。新行将被忽略,因为它位于“”之间。但你提出了一个很好的观点。“”前面可能有一个字符
ob_end_flush();
exit();