PHP - 更改会话值以更改语言

时间:2018-04-28 19:51:39

标签: php session

我正在尝试将会话更改为" en"或"不"点击链接,以便在网站上显示正确的语言。

我有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>更改语言时,它只会保留默认语言。

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

谢谢!

2 个答案:

答案 0 :(得分:0)

我刚刚更改了索引代码

<强>的index.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>

<强> changelang.php

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

答案 1 :(得分:0)

changelang.php

在函数

中设置标题()
function redirect(url) {
    header('Location: '. url);
}
session_start()
$_SESSION['lang'] = $_GET['lang'];

redirect('index.php');