Нельзя полагаться на HTTP REFERER , поскольку пользователи могут манипулировать им, а браузеры могут отказаться от его отправки.
Единственным "безопасным" способом было бы установить переменную сеанса в register.php и проверить, установлена ли эта переменная в verify.php. Как то так:
register.php:
session_start();
$_SESSION['valid_user'] = true;
confirm.php:
session_start();
if(!isset($_SESSION['valid_user'])) {
die("You did not come from the page i specified!");
}
Однако , это не будет учитываться, если последняя страница была register.php, НО что пользователь был на register.php.
Поскольку HTTP не имеет состояния, вам необходимо отслеживать это на уровне сервера. Если у вас нет аутентифицированного пользователя, для которого вы можете отслеживать все просмотры страниц, это будет очень сложно реализовать. Насколько безопасен действительно он нужен?