Изменить язык по ссылке

У меня есть такие ссылки, как:

<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";} ?>> 

В этом случае вы измените тип класса