Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 28.11.2017, 12:49   #1
Риназ
 
Регистрация: 13.06.2017
Сообщений: 6
По умолчанию ЧТО НЕ ТАК? Почему не работает условие? (переход по ссылкам из файла)

Всем привет. Уже почти час ломаю голову.
Вот код:
Код:
<?
$links = file('links.txt');
$url1 = $links[0]; //первая ссылка
$url2 = $links[1]; //вторая ссылка
if ($_SERVER['HTTP_REFERER']==$url1) { //определяем откуда пришел пользователь, если с ссылки 1, то делаем редирект на ссылку 2
    header("Location:$url2"); //делаем редирект на ссылку 2
}
?>
Почему не работает условие. Вроде бы все правильно. На сайте 1 делаю от 5 кликов, чтобы $_SERVER['HTTP_REFERER'] работал.
После перехода с ссылки 1, то ничего не происходит. Просто пустая страница.
Риназ вне форума Ответить с цитированием
Старый 28.11.2017, 13:11   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,491
По умолчанию

Цитата:
Сообщение от Риназ Посмотреть сообщение
Уже почти час ломаю голову.
Цитата:
Сообщение от Риназ Посмотреть сообщение
ничего не происходит
Отладочная печать (var_dump) в помощь.

http://phpfaq.ru/debug
Alex11223 на форуме Ответить с цитированием
Старый 28.11.2017, 14:37   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,263
По умолчанию

насчёт debug'а полностью согласен.

но, без отладки, просто глядя на код, я бы рассмотрел такой вариант:
Код:
$links = file('links.txt', FILE_IGNORE_NEW_LINES);
if(count($links)>1){
   $url1 = $links[0]; //первая ссылка
   $url2 = $links[1]; //вторая ссылка
   if ($_SERVER['HTTP_REFERER']==$url1) { //определяем откуда пришел
                         //  пользователь, если с ссылки 1, то делаем редирект на ссылку 2
    header("Location:$url2"); //делаем редирект на ссылку 2
}
}
ибо, из описания функции file():
Цитата:
Замечание:
Каждая строка в полученном массиве будет завершаться символами конца строки (если вы не указали флаг FILE_IGNORE_NEW_LINES), поэтому, если вам будет нужно избавиться от этих символов, вы можете использовать функцию rtrim().
Serge_Bliznykov вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему работает так? DeuS7 Общие вопросы по Java, Java SE, Kotlin 1 15.06.2016 16:26
Что с условие не так? Parallelogram PHP 7 06.06.2014 16:43
Не работает условие. Почему? Dmitriy.G Общие вопросы по Java, Java SE, Kotlin 2 03.11.2012 21:41
Почему не работает программа, что не так? Демик Паскаль, Turbo Pascal, PascalABC.NET 9 17.07.2011 21:12
С#.NET. Маленькая проблемка - условие не работает так , как надо Ksy Общие вопросы .NET 11 24.12.2009 22:07