Есть кусок рабочего кода. Суть такова. Пользователь отправляет GET запрос с предпочитаемым языком сайта. Обновляется страница и в адресной строке нету мусора GET параметров. Это типа костыль если cookie у пользователя отключены. PHP: /* Обработка GET запроса если он есть */ if (isset($_GET['lang'])) { //Если есть GET данные с переменной lang if (in_array($_GET['lang'], $language_standart)) { // Проверяем на совпадение $_SESSION['language'] = $_GET['lang']; //Запоминаем нужный язык setcookie('language', $_SESSION['language'], time() + 31449600); // Записываем в куки выбранный язык хранение 1 год } else { //В _GET запросе неверно введён язык if (!isset($_SESSION['language'])){ //Язык в сессии не указанн $_SESSION['language'] = $language_standart[0]; // Ставим первый язык из стандартных setcookie('language', $_SESSION['language'], time() + 31449600); // Записываем в куки выбранный язык хранение 1 год } } unset($_GET); //Очищаем GET данные $redirect = 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; //Формируем ссылку $redirect = preg_replace('/\?.*/', '', $redirect); //Очищаем ссылку от мусора GET данных header("Location: ".$redirect); //Редирект на чистую страницу exit; } /* Если GET запроса нету */ else { Вопросы: 1) Нужна ли строчка и даёт ли она какой-то эффект, я понять не смог ??? PHP: unset($_GET); 1.1) Очищается ли переменная $_GET после завершения PHP скрипта ??? 2) Надо ли отправлять в header("Location: ".$redirect); ещё какой нибудь параметр типа " 404 Not Found" или " 301". Что бы поисковики адекватно реагировали на данную ссылку с GET запросом и последующим редиректом ??? 3) Надо ли делать инъекцию от вредоносного кода в GET запросе, если да то в каком виде ??? P.S. код рабочий, проверял.
unset полезны тут http://secure.php.net/manual/ru/control-structures.foreach.php где рамка "ВНИМАНИЕ"