2017-02-04 17 views
1

Привет Я пытаюсь прочитать файл, который содержит URL-адрес, где я хочу, чтобы перенаправить Я использую этотзаголовок ошибки расположение перенаправлять

$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 
+1

глупо но необходимый вопрос. Вы пытались сделать ссылку echo $ и проверить, нет ли скрытых символов? –

+1

Почему бы вам просто не называть 'file_get_contents()', если вы хотите сразу прочитать весь файл? – Barmar

ответ

3

Смотреть это утверждение здесь,

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

filesize() Функция ожидает путь к файлу как аргумент, но вы передаете неопределенную переменную $link.

Так что вышеприведенное утверждение должно быть так:

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

Кроме того, использование exit(); после header(...);header(...);, потому что сам по себе не является достаточным, чтобы перенаправить пользователя на другую страницу.

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

ваш - лучший (объясненный) ответ. Я записывал свою, так как видел желтую коробку сверху, на которой был дан ответ. –

+0

@ Fred-ii- Да, иногда это случается и со мной.;-) –

+1

и действительно добавить 'exit;' после заголовка. Я собирался также предложить его (TBH). –

2

Вы используете неправильную переменную для

filesize($link) 

, который должен быть $file

filesize($file) 

(Edit):

процедура отладки (и с 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"); 

... вы были бы представлены следующим уведомления/предупреждения:

Извещение: Undefined переменной: ссылки в/path/to/file.php on line x
Предупреждение: fread(): параметр длины должен быть больше 0 в /path/to/file.php в строке x

С fread() не удалось определить filesize, ему не удалось «прочитать» его.

И, конечно же, как сказал Раджейп в своем (гораздо лучшем) ответе, добавьте exit; после заголовка. У вас было бы (скорее всего) работа, но это действительно лучшая практика.