页面加载会话

时间:2014-10-22 11:06:50

标签: php session

我正在构建多语言网并发现问题。我的语言正在根据会话变量而变化,并且首次加载时会话为空,只有在刷新页面后才能获得正确的会话变量。如何在页面加载之前设置变量?这是代码:

    session_start();

  $available_langs = array('en','rus');
    if ($_SESSION['lang']=='') {
       $_SESSION['lang'] = 'en';
   }
  if(isset($_GET['lang']) && $_GET['lang'] != ''){ 
    if(in_array($_GET['lang'], $available_langs))
    {       
      $_SESSION['lang'] = $_GET['lang'];
    }
  }
  include('language/'.$_SESSION['lang'].'.php');  

1 个答案:

答案 0 :(得分:2)

  session_start();

  // Direct override beats session
  $lang = $_GET['lang'] ?: $_SESSION['lang'];
  $available_langs = array('en','rus');

  // If the requested language isn't available, or not provided, fall back to first
  if(!in_array($lang, $available_langs))
    $lang = $available_langs[0];

  // Store it in the session and include the template
  $_SESSION['lang'] = $lang;
  include 'language/'.$lang.'.php';