У меня есть такие ссылки, как:
<a href="index.php?lang=en"><img src="images/uk.png" style="height:20px"/></a>
И и включил страницу в index.php:
<?php session_start(); header('Cache-control: private'); // IE 6 FIX if(isSet($_GET['lang'])) { $lang = $_GET['lang']; // register the session and set the cookie $_SESSION['lang'] = $lang; setcookie("lang", $lang, time() + (3600 * 24 * 30)); } else if(isSet($_SESSION['lang'])) { $lang = $_SESSION['lang']; } else if(isSet($_COOKIE['lang'])) { $lang = $_COOKIE['lang']; } else { $lang = 'en'; } switch ($lang) { case 'en': $lang_file = 'lang.en.php'; break; case 'gr': $lang_file = 'lang.gr.php'; break; default: $lang_file = 'lang.en.php'; } include_once 'languages/'.$lang_file; ?>
Он меняет URL-адрес на index.php?lang=gr
читает параметр LANG
и переводит страницу в зависимости от этого параметра.
Как я могу изменить свой код, чтобы сделать это, не передавая параметр Url? Я имею в виду, что я хочу, чтобы пользователь оставался на одной странице и менял язык обновления страницы.
Есть несколько способов сделать это, одним из которых является использование формы и создание кнопки «Отправить» для вашего изображения. Форма будет использовать метод POST, который не будет включать переменные в URL. Запрос на добавление добавит ?lang=en
<div id="buttons"> <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> <input type="hidden" name="lang" value="en"> <button type="submit"> <img src="images/uk.png" style="height:20px"/> </button> </form> </div>
Измените свой код, чтобы использовать переменную $ _POST:
if(isSet($_POST['lang'])) { $lang = $_POST['lang'];
Это будет так:
<input type="submit" value="" class=<?php if( $_SESSION['lang'] == "tr" ) { echo "submittr"; } else { echo "submiten";} ?>>
В этом случае вы измените тип класса