Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用html按钮更改站点的语言_Php_Html_Variables_Button - Fatal编程技术网

Php 使用html按钮更改站点的语言

Php 使用html按钮更改站点的语言,php,html,variables,button,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="image

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

更改站点语言并在用户返回时保持该语言的最佳方法是什么?

您可以通过

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

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

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

如果已设置,请使用该
$语言

注:


不能通过html更改PHP中的变量。PHP是服务器端HTML是客户端


不过,您可以使用来更改它。这是最简单的方法。

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

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


如果要保留所选内容,可以将此值存储在数据库或会话中。

最好有一个默认值,这样您就永远不会进入无语言站点

$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">

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

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


这将解决您的问题。

在这种情况下,我尝试使用会话变量来存储和定义语言。在我打开缓存之前,一切都正常。启用缓存时,即使重新加载页面也会返回相同的语言,用户无法更改语言。
因此,我想在单击语言按钮(国旗)< /P>后,使用Ajax请求改变语言。我认为,如果cookie(而不是请求)包含CouthLanguage,则另一部分应该是<代码>否则(空($$cookie(语言)))/>代码,以避免将语言重新设置为“NL”。
<a href="index.php?language=en">
<a href="index.php?language=no">
<?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; ?>