使用html按钮更改网站的语言

时间:2013-02-25 13:29:32

标签: php html variables button

在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>

更改网站语言的最佳方法是什么,并在用户返回时保持不变?

7 个答案:

答案 0 :(得分:9)

你可以通过

来做到这一点
<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");
} ?>

答案 1 :(得分:2)

拥有默认值总是好的,这样你就永远不会进入无语言网站。

$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 :(得分:1)

要在不改变方法的情况下提供解决方案,您可以这样做。

<?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>

如果您想保留选择,可以将此值存储在数据库或会话中。

答案 3 :(得分:0)

尝试将此$language值保存到会话变量。重新加载页面时检查是否设置了会话变量。

如果设置使用$language

注:

$language = $_GET['language'];

答案 4 :(得分:0)

您无法通过html更改PHP中的变量。 PHP是服务器式HTML是客户端的

您可以使用GET variables进行更改。这是最简单的方法。

答案 5 :(得分:0)

您可以像这样实现相同的代码。我编辑了你的代码。

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

这将解决您的问题。

答案 6 :(得分:0)

在这种情况下,我尝试使用Session变量来存储和定义语言。一切都有效,直到我打开缓存。启用缓存后,即使重新加载页面也会返回相同的语言,并且用户无法更改语言。 所以我考虑在点击语言按钮(国旗)后使用AJAX请求更改语言