标头位置错误重定向

时间:2017-02-04 15:15:46

标签: php header location

您好我正在尝试读取包含我要重定向的网址的文件我正在使用此

$file = 'test.txt';
$myfile = fopen($file, "r") or die("Unable to open file!");
$link = fread($myfile,filesize($link));
fclose($myfile);
header("Location: $link");  

浏览器显示错误“页面未正确重定向”

文件test.txt包含

http://www.google.es

2 个答案:

答案 0 :(得分:3)

请在此处查看此声明,

$link = fread($myfile,filesize($link));
                      ^^^^^^^^^^^^^^^

filesize()函数需要文件路径作为参数,但是您传递的是未定义变量 $link

所以上面的陈述应该是这样的:

$link = fread($myfile,filesize($file));

此外,请在exit();之后使用header(...);,因为header(...);本身不足以将用户重定向到其他网页。

header("Location: $link"); 
exit(); 

答案 1 :(得分:2)

你正在使用错误的变量

filesize($link)

应为$file

filesize($file)

(编辑):

调试程序(以及error reporting设置为捕获并显示)。

注释掉标题并回显$link变量

$file = "test.txt";
$myfile = fopen($file, "r") or die("Unable to open file!");
echo $link = fread($myfile,filesize($link));
fclose($myfile);
// header("Location: $link");

...您会收到以下通知/警告:

  

注意:未定义的变量:第x行的/path/to/file.php中的链接   警告:fread():在x行的/path/to/file.php中长度参数必须大于0

由于fread()无法找出filesize,因此无法"读取"它

当然,正如Rajdeep在他的(更好的)答案中所述,在标题之后添加exit;。你的(很可能)会工作,但这确实是更好的做法。