Гриша К.
Новичок
Сделал скрипт для передачи параметра языка. Подскажите корректен ли такой вариант.
Здравствуйте.
Я использую вот такой для передачи скрипту информации о выбранном языке:
language.php
Вот что меня беспокоит в такой реализации смены языка:
Например я нахожусь на странице: _http://phpclub.ru/page.php?world=ru&country=rus
Часть кода страницы page.php:
И вот такой момент:
Если в коде страницы language.php, я уберу строку header("Location: $_SERVER[HTTP_REFERER]");
То тогда находясь на странице _http://phpclub.ru/page.php?world=ru&country=rus и нажав на ссылку <a href="?lang=eng">English</a>,
я получается попадаю на страницу _http://phpclub.ru/page.php?lang=eng, т.е. потерялись параметры страницы (world=ru&country=rus).
И тогда я решил, что код на странице language.php, я добавлю строку header("Location: $_SERVER[HTTP_REFERER]"); и тогда со страницы _http://phpclub.ru/page.php?lang=eng я буду сразу поподать опять на _http://phpclub.ru/page.php?world=ru&country=rus, и + язык поменяется.
Я то, смотрю, все работает, глаз радует.
Но меня беспокоит, сомнения по поводу правильности такого кода. Подскажите пожалуйста, нормальный ли это код, т.е. можно ли его использовать на сайте, не беспокоясь за то, что так делать нельзя.
Здравствуйте.
Я использую вот такой для передачи скрипту информации о выбранном языке:
language.php
PHP:
if(isset($_GET['language'])) {
if(valid_language($_GET['language'])) { //Сзедсь буду проверять есть ли такой язык у меня
$_SESSION['language'] = $_GET['language'];
// После передачи скрипту информации о я зыке, возвращаю пользователю на ту страницу где он был
header("Location: $_SERVER[HTTP_REFERER]");
}
}
if(!isset($_SESSION['language'])) {
$_SESSION['language'] = 'rus';
}
$language = $_SESSION['language'];
Например я нахожусь на странице: _http://phpclub.ru/page.php?world=ru&country=rus
Часть кода страницы page.php:
PHP:
<?php
include ('language.php');
//Список языков
<a href="?lang=eng">English</a>
<a href="?lang=fra">France</a>
<a href="?lang=rus">Russian</a>
?>
Если в коде страницы language.php, я уберу строку header("Location: $_SERVER[HTTP_REFERER]");
То тогда находясь на странице _http://phpclub.ru/page.php?world=ru&country=rus и нажав на ссылку <a href="?lang=eng">English</a>,
я получается попадаю на страницу _http://phpclub.ru/page.php?lang=eng, т.е. потерялись параметры страницы (world=ru&country=rus).
И тогда я решил, что код на странице language.php, я добавлю строку header("Location: $_SERVER[HTTP_REFERER]"); и тогда со страницы _http://phpclub.ru/page.php?lang=eng я буду сразу поподать опять на _http://phpclub.ru/page.php?world=ru&country=rus, и + язык поменяется.
Я то, смотрю, все работает, глаз радует.
Но меня беспокоит, сомнения по поводу правильности такого кода. Подскажите пожалуйста, нормальный ли это код, т.е. можно ли его использовать на сайте, не беспокоясь за то, что так делать нельзя.