В целях безопасности мне нужно показывать страницу только пользователям, если они поступают с определенного сайта, а не напрямую с посетителями.
Так, как я его настроил, будет создана случайная 12-символьная строка, сгенерированная и добавленная к URL-адресу. Например:
http://www.example.com?skey=a72bzy321bgf
Параметр skey всегда будет случайным, но всегда имеет 12 символов. Поэтому в основном, если у моего URL есть параметр & key = с 12 случайными символами, страница отображается правильно. Если нет, посетители отправляются куда-то еще.
Любая помощь в отношении того, как закодировать это на странице, или что я должен Google найти необходимые инструкции? Я все посмотрел и не нашел, как это сделать, и я точно не знаю, что искать. Поэтому любая помощь будет очень признательна.
Благодаря!
Запросите значение skey
и найдите длину значения. Если длина не равна 12, используйте die (), чтобы пользователь не увидел страницу. Используйте следующую страницу на целевой странице. ( http://www.example.com/index.php?skey=a72bzy321bgf
)
<?php if(!isset($_REQUEST['skey']) || strlen($_REQUEST['skey']) != 12){ die("Soory,You came to this page in a Wrong Way."); } ?> //Your Code will goes here.
Вы можете получить ключ для URL-адреса, а затем проверить свою функцию, как это действительно при запуске вашей страницы
$key = trim($_GET['key']); if(!isValidKey($key)){ //die('Invalid Key'); //or header("Location: wrongkey.html"); exit; }
Вам нужно проверить, есть ли $_GET['skey']
isset()
, и если длина строки составляет 12 символов.
if (isset ($_GET['skey']) && strlen($_GET['skey']) == 12) { // Get in } else { // Go away }
Это, конечно, не правильный способ проверить, откуда пришел пользователь, так как ваш URL-адрес референта должен будет каким-то образом установить skey
как часть URL-адреса.
Можете ли вы вместо этого проверить, есть ли ваш $_SERVER['HTTP_REFERER']
isset()
?
Всем спасибо!
Основываясь на всех ваших предложениях, я объединил некоторые вещи, и это отлично работает для меня до сих пор:
<?php if(!isset($_REQUEST['skey']) || strlen($_REQUEST['skey']) != 12){ header("Location: http://example.org/not-allowed.php"); exit; } ?>
Благодаря! Жаль, что я не смог бы отменить все ваши ответы. Надеюсь, это поможет другим.