Здравствуйте, я пишу сценарий страницы профиля, в этом сценарии я проверяю значение входящей переменной $ _GET и проверяю, что она является целым числом, затем я проверяю это значение по значению $ _SESSION, чтобы подтвердить, что они могут получить доступ толькосвои собственные аккаунты.Код выглядит следующим образом:
// validate $_GET field
if(isset($_GET['identity']) && filter_var($_GET['identity'], FILTER_VALIDATE_INT, array('min_range' => 1))) {
if(isset($_SESSION['user_identity']) && ((int)$_SESSION['user_identity'] === (int)$_GET['identity'])) { // if session exists and is === $_GET['identity']
// Proceed with code
Это прекрасно работает, например, если я пытаюсь передать '0', '2-2', 'abc' или нет значения в качестве значения $ _GET, запрос корректно завершается неудачейи перенаправляет их на домашнюю страницу.
Затем я попытался изменить файл .htaccess, чтобы сопоставить URL-адреса с именем «profile / 1», чтобы привести его в порядок.
RewriteRule ^profile$ profile.php
RewriteRule ^profile/([0-9]+)$ profile.php?identity=$1 [NC,L]
Теперь я обнаружил, чтостраница больше не перенаправляет, используя указанные выше неверные параметры $ _GET.Он просто пытается найти профиль / abc.
Кто-нибудь знает почему?