PHP 多语言问题

发布于 2024-12-13 18:28:03 字数 512 浏览 2 评论 0原文

我在使用 php 多语言时遇到问题。我正在使用函数 *check_lang* 并且它在一个页面中工作正常,但是一旦我进入另一页面, $_SESSION['lang'] 变量 $lang 就会变回默认值(en)。问题是什么?

<?php

    function check_lang() { 
    if(isset($_GET['lang'])
        {
        $lang = $_GET['lang'];
        $_SESSION['lang'] = $lang
        }

    if (!isset($_SESSION['lang'])) { 
        $lang = 'en'; 

    } else { 
        $_SESSION['lang']=$lang; 
      } 

    //directory name 
    $dir = 'languages'; 
    return "$dir/$lang.lng"; 
    } 

    ?>

I have problems with php multilanguage. I'm using function *check_lang* and it works fine in one page, but once I go to another page the $_SESSION['lang'] variable $lang turns back into default (en). What is the problem?

<?php

    function check_lang() { 
    if(isset($_GET['lang'])
        {
        $lang = $_GET['lang'];
        $_SESSION['lang'] = $lang
        }

    if (!isset($_SESSION['lang'])) { 
        $lang = 'en'; 

    } else { 
        $_SESSION['lang']=$lang; 
      } 

    //directory name 
    $dir = 'languages'; 
    return "$dir/$lang.lng"; 
    } 

    ?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鲜肉鲜肉永远不皱 2024-12-20 18:28:03

您必须:

session_start();

在您想要使用会话变量的每个脚本的顶部。

You have to:

session_start();

At the top of each of your scripts in which you want to use session variables.

心奴独伤 2024-12-20 18:28:03

您需要在计划使用 $_SESSION[] 全局的每个页面上调用 session_start() 。这就是告诉 PHP 它应该从用户的 cookie 或查询字符串中查找 session_id ,以便 PHP 知道哪个会话的值使用。

参考

You need to call session_start() on each page you're planning on using the $_SESSION[] global in. That's what tells PHP that it should look up the session_id from the user's cookies or the query string so that PHP knows which session's values to use.

Reference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文