代码之家  ›  专栏  ›  技术社区  ›  Viktor Rudi

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

  •  0
  • Viktor Rudi  · 技术社区  · 6 年前

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

    我有两个变量, $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 回复  |  直到 6 年前
        1
  •  0
  •   Sarpyjr    6 年前

    我只是稍微修改了一下索引代码

    指数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");
    ?>
    
        2
  •  0
  •   surge10    6 年前

    changelang。php

    在函数中设置标头()

    function redirect(url) {
        header('Location: '. url);
    }
    session_start()
    $_SESSION['lang'] = $_GET['lang'];
    
    redirect('index.php');