Измените язык сайта с помощью кнопки html


В PHP я хочу изменить язык (английский, немецкий и т.д.) сайта при нажатии кнопки. Правильно ли это подходить к этой проблеме?

<?php 
  $language;
  if ($language == "en") {
    include("headerEn.php");
  } else {
    include("header.php");
  } 
?>
<a href="index.php"><?php $language = "en"; ?>
<img src="images/language/languageNO.png"></a>

<a href="index.php"><?php $language = "no"; ?>
<img src="images/language/languageEN.png"></a>

Каков наилучший способ изменить язык сайта и сохранить его при возвращении пользователя?

Author: kensil, 2013-02-25

6 answers

Вы можете сделать это с помощью

<a href="index.php?language=en">
<a href="index.php?language=no">

И получите языки и сохраните их в файле cookie и включите файл в соответствии с файлом cookie, таким как

if ( !empty($_GET['language']) ) {
    $_COOKIE['language'] = $_GET['language'] === 'en' ? 'en' : 'nl';
} else {
    $_COOKIE['language'] = 'nl';
}
setcookie('language', $_COOKIE['language']);

И чем

if ( $_COOKIE['language'] == "en") {
   include("headerEn.php");
} else {
   include("header.php");
} ?>
 8
Author: NullPoiиteя, 2013-02-25 13:37:26

Всегда полезно иметь значение по умолчанию, чтобы вы никогда не оказались на сайте без языка.

$language = $_REQUEST["language"];
$default_header="myheaderXXX.php";

switch ($language) {
    case "en":
      include("headerEn.php");
      break;

    case "no":
      include("header.php");
      break;

    default:
      include($default_header);
}

А затем создайте ссылки следующим образом:

<a href="index.php?language=en">
<a href="index.php?language=no">
 2
Author: fedorqui, 2013-02-25 13:35:29

Чтобы дать решение, не меняя своего подхода, вы можете сделать вот так.

<?php 
if(isset($_GET['language']))
  $language = $_GET['language'];
else
  $language = "";

if ($language == "en") {
   include("headerEn.php");
} else {
   include("header.php");
} ?>

<a href="index.php?language = en"><img src="images/language/languageNO.png">      </a>
<a href="index.php?language = no"><img src="images/language/languageEN.png"></a>

Если вы хотите сохранить выбор, вы можете сохранить это значение в базе данных или сеансе.

 1
Author: Edwin Alex, 2013-02-25 13:34:19

Вы не можете изменить переменную в PHP с помощью html. PHP ориентирован на сервер, HTML ориентирован на клиента

Вы можете использовать ПОЛУЧИТЬ переменные , чтобы изменить его. Это самый простой способ сделать это.

 0
Author: s.lenders, 2013-02-25 13:33:22

Вы можете реализовать такой же код, как этот. Я отредактировал ваш код.

<?php 
$language; ?>
<?php if ($language == "en") : ?>
    <?php include("headerEn.php"); ?>
     <a href="index.php"><?php $language = "en"; ?><img src="images/language/languageNO.png"></a> 
<?php else: ?>
    <?php include("header.php"); ?>
     <a href="index.php"><?php $language = "no"; ?><img src="images/language/languageEN.png"></a>
<?php endif; ?> 

Это решит вашу проблему.

 0
Author: Tarun Kumar, 2013-02-25 13:36:56

Попробуйте сохранить это значение $language в переменной сеанса . При перезагрузке страницы проверьте, установлена ли переменная сеанса или нет.

Если установлено, используйте это $language

ПРИМЕЧАНИЕ:

$language = $_GET['language'];
 0
Author: Chittaranjan Sethi, 2013-02-25 13:40:21