Задать вопрос

Как реализовать доступ к странице только для тех, кто переходит с определенной страницы?

Все привет.
Подскажите, как можно сделать на php такое ограничение. На страницу sss.ru/1ndex.php можно попасть только по ссылке со страницы sss/bla.php
В общем я хочу направлять людей на страницу bla.php , а оттуда идет php редирект на страницу 1ndex.php и в таком случае посетитель видит содержимое. А если человек напрямую забивает в строке браузера sss.ru/1ndex.php то он переадресовывается на другую какую либо страницу например sss.ru/error.php

Пробовал вот это
<?php
if(!isset($_SERVER['HTTP_REFERER'])){
header('HTTP/1.0 404 Not Found');
exit();
}

if(!strstr($_SERVER['HTTP_REFERER'], "sss/bla.php ")){
header('HTTP/1.0 404 Not Found');
exit();
}

?>
Но почему то не показывается содержание страницы и не показывает ошибки.
Заранее спасибо.
  • Вопрос задан
  • 8210 просмотров
Подписаться 5 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Stepik
    PHP (pro)
    2 недели
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 6
DrNemo
@DrNemo
Если обе страницы в рамках одного сайта, то не проще ли реализовать это через сессию/куки?
На sss/bla.php создаем сессию, что просмотр разрешен.
На sss.ru/1ndex.php проверяем наличие сессии, если ее нет, делаем редирект на sss.ru/error.php
Если удалим сессию после показа sss.ru/1ndex.php, то вход на эту страницу будет возможен только со страницы sss/bla.php, иначе страница будет доступна в рамках жизни сессии.

П.С.: HTTP_REFERER не рекомендую доверять, подробнее php.net/manual/ru/reserved.variables.server.php
Ответ написан
Комментировать
@bossldv Автор вопроса
Да конечно можно через сессию куки но для меня это сложно, не смогу реализовать. Может есть какой нибудь пример? чтобы посмотреть
Ответ написан
@bossldv Автор вопроса
На могу понять, почему выдается пустая страница? 1ndex.php и этого Text your error. тоже не пишет.
Ответ написан
Комментировать
@bossldv Автор вопроса
Все супер спасибоо!!!
Ответ написан
Комментировать
@bossldv Автор вопроса
Да все работает, только когда писал <?php не работало, убрал php и оставил просто <? заработало. Почему так не знаю.
Ответ написан
@bossldv Автор вопроса
В первом файле я сделал так
<?php
session_start();

$_SESSION['access'] = TRUE;

header('Location: index2.php');

?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы