За последние 24 часа нас посетили 18477 программистов и 1612 роботов. Сейчас ищут 1794 программиста ...

Очистка GET параметров

Тема в разделе "Прочие вопросы по PHP", создана пользователем SaNeKnet, 13 дек 2016.

  1. SaNeKnet

    SaNeKnet Новичок

    С нами с:
    13 дек 2016
    Сообщения:
    7
    Симпатии:
    0
    Адрес:
    Харьков
    Есть кусок рабочего кода.
    Суть такова. Пользователь отправляет GET запрос с предпочитаемым языком сайта.
    Обновляется страница и в адресной строке нету мусора GET параметров.
    Это типа костыль если cookie у пользователя отключены.

    PHP:
    1.     /* Обработка GET запроса если он есть */
    2.     if (isset($_GET['lang'])) { //Если есть GET данные с переменной lang
    3.         if (in_array($_GET['lang'], $language_standart)) { // Проверяем на совпадение
    4.             $_SESSION['language'] = $_GET['lang']; //Запоминаем нужный язык
    5.            setcookie('language', $_SESSION['language'], time() + 31449600); // Записываем в куки выбранный язык хранение 1 год
    6.         }
    7.         else { //В _GET запросе неверно введён язык
    8.             if (!isset($_SESSION['language'])){ //Язык в сессии не указанн
    9.                 $_SESSION['language'] = $language_standart[0]; // Ставим первый язык из стандартных
    10.                 setcookie('language', $_SESSION['language'], time() + 31449600); // Записываем в куки выбранный язык хранение 1 год
    11.             }
    12.         }
    13.         unset($_GET); //Очищаем GET данные
    14.         $redirect = 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; //Формируем ссылку
    15.         $redirect = preg_replace('/\?.*/', '', $redirect); //Очищаем ссылку от мусора GET данных
    16.         header("Location: ".$redirect); //Редирект на чистую страницу
    17.         exit;
    18.     }
    19.     /* Если GET запроса нету */
    20.     else {
    Вопросы:
    1) Нужна ли строчка и даёт ли она какой-то эффект, я понять не смог ???
    PHP:
    1. unset($_GET);
    1.1) Очищается ли переменная $_GET после завершения PHP скрипта ???
    2) Надо ли отправлять в header("Location: ".$redirect); ещё какой нибудь параметр типа " 404 Not Found" или " 301".
    Что бы поисковики адекватно реагировали на данную ссылку с GET запросом и последующим редиректом ???
    3) Надо ли делать инъекцию от вредоносного кода в GET запросе, если да то в каком виде ???

    P.S. код рабочий, проверял.
     
    #1 SaNeKnet, 13 дек 2016
    Последнее редактирование: 13 дек 2016
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    SaNeKnet нравится это.