php - 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>
更改语言时,它只是停留在默认语言上。
我很想得到一些关于如何解决这个问题的反馈。
谢谢!
解决方案
我只是稍微更改了索引代码
索引.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");
?>
推荐阅读
- firebase - Firestore 是否在每次构建页面时执行读取?
- python - 这条鳕鱼是真的,但在这个网站('hepsiburada.com')中返回 403。我该如何解决这个问题?
- c# - 带有表达式的通用存储库“查找”方法
- python - 为我托管在 herokou 上时,client.fetch_user() 不起作用
- algorithm - Scala如何为Rationals定义排序
- elasticsearch - Elasticsearch:如何使用 Java api 添加嵌套数据类型?
- javascript - 如何使用动态密钥创建 TS 接口?
- javascript - 未捕获的类型错误:无法读取 null 的属性“集合”
- kubernetes - istio 1.5.1 - 如何将 SameSite 属性添加到所有 cookie
- javascript - 对数组进行排序并在 MongoDB 中添加排名字段