首页 > 解决方案 > PHP - 更改会话值以更改语言

问题描述

我正在尝试通过单击链接将会话更改为“en”或“no”的值,以便在网站上显示正确的语言。

我有 2 个变量,$langNO并且$langEN. 这些是包含每种语言的键和值的变量。

我正在使用这个:

if (!isset($_SESSION['lang'])) {$_SESSION['lang'] = "en";}
if ($_SESSION['lang'] === "no") {$lang = $langNO;}
if ($_SESSION['lang'] === "en") {$lang = $langEN;}

$lang与文本中的字符串有关。例子:

<h1><?php echo $lang['heading']; ?></h1>

要更改会话值,我在changelang.php中使用它:

session_start();
$_SESSION['lang'] = $_GET['lang'];
header("Location:index.php");

当我点击<a href="changelang.php?lang=no">NO</a>更改语言时,它只是停留在默认语言上。

我很想得到一些关于如何解决这个问题的反馈。

谢谢!

标签: phpsession

解决方案


我只是稍微更改了索引代码

索引.php

<?php
session_start();
if (!isset($_SESSION['lang'])) {  
    $lang = "en"; 
} else {
    $lang = $_SESSION['lang'];
}

switch ($_SESSION['lang']) {
    case "en":
        $lang = $langEN;
        break;
    case "no":
        $lang = $langNO;
        break;
}
?>

<a href="changelang.php?lang=no">NO</a>

更改语言.php

<?php  
session_start();
$_SESSION['lang'] = $_GET['lang'];
header("Location:index.php");
?>

推荐阅读