Это не имеет особого смысла, но для ваших конкретных c вопросов:
if(!isset($_SESSION['page_one']) &&
strpos($_SERVER['HTTP_REFERER'], 'google') === false &&
strpos($_SERVER['HTTP_X_FORWARDED_FOR'], 'google') === false &&
file_exists('page-one.php')
{
header('Location: 404.php');
exit;
}
- Проверьте, не установлена ли переменная сеанса
- Проверьте, если
HTTP_REFERER
не google
- Проверьте, не
HTTP_X_FORWARDED_FOR
не google
- Проверьте, не был ли
page-one.php
удален
$_SERVER['HTTP_REFERER']
не является надежным, как это может быть неправильно, прокси-сервер или пустой, и $_SERVER['HTTP_X_FORWARDED_FOR']
не гарантированно будет установлен или надежен.
Имея в виду предыдущие предостережения, вы можете увидеть, если кто-то пришел с другого сайта, проверив :
if(!isset($_SESSION['page_one'] &&
!isset($_SERVER['HTTP_REFERER'] &&
!isset($_SERVER['HTTP_X_FORWARDED_FOR'])
{
header('Location: 404.php');
exit;
}
Если вы добавите параметр get ко всем ссылкам, тогда будет проще:
<a href="www.domain.com/page-two.php?link">Page 2</a>
Тогда:
if(!isset($_SESSION['page_one'] && !isset($_GET['link'))
{
header('Location: 404.php');
exit;
}