可疑语言网站

时间:2017-10-04 06:54:27

标签: php html

我的网站使用2种语言。

我为此目的使用了会话。当用户点击语言图标时,语言会发生变化,一切都很好,但是当网站首次打开而没有选择语言时,不会加载默认语言,也不会显示单词。

这是我的language.inc.php文件



<?php
session_start();
$langForSelection = isset($_SESSION['lang']) ? $_SESSION['lang'] : 'en'; //default to english language
if(isset($_GET['langSelect'])){
    //allow only 2 for now ( english / turkish)
    $langForSelection = "";
    switch($_GET['langSelect']){
        case 'en':
        $langForSelection = 'en';
        break;
        case 'tr':
        $langForSelection = 'tr';
        break;
        default:
        break;
    }
    if(isset($langForSelection)){
		$langForSelection2=$_SESSION['lang']=$langForSelection;
       // setcookie('lang',$langForSelection,time()+24*7*60*60);//set cookie to expire in 7 days
    }
}
&#13;
&#13;
&#13;

这是用户选择语言的图标

    <div><a href="?langSelect=en" title="English" id="English" class="active_lang"><img src="images/united-kingdom.png" class= "active" style="float: right; width: 24px;height:24px ;padding: 4px"> </a>

<a href="?langSelect=tr" title="Turkish"  id="Turkish"><img src="images/turkey.png" style="float: right; width: 24px;height:24px; padding: 4px"> </a>

在这里我打印出单词的翻译 这是一个例子

require_once('inc/languages.inc.php'); 
require_once('Languages/common.inc.php'); 
$langForSelection2=$_SESSION['lang'];


   <li><a href="Logs.php?id=access" class="details"   data-ajax="false"><?php echo $arrLang[$langForSelection2]['log_login']; ?></a></li>

再次加载网页时,在用户点击语言图标之前,我的问题就会被重现,但是当他点击语言时,一切正常。

1 个答案:

答案 0 :(得分:0)

您可以将开关更改为默认为英语:

switch($_GET['langSelect']){
    case 'en':
    $langForSelection = 'en';
    break;
    case 'tr':
    $langForSelection = 'tr';
    break;
    default:
    $langForSelection = 'en';
    break;
}

您遇到问题的原因可能是$_SESSION的{​​{1}}值与您的期望值不同,例如lang。如果您想知道确切的原因,可以使用新会话重现问题并致电'en-us'如果它有var_dump($_SESSION);,那么这就是您遇到问题的确切原因。

编辑:

此处显示的解决方案还不够,因为这部分

lang

位于if(isset($langForSelection)){ $langForSelection2=$_SESSION['lang']=$langForSelection; // setcookie('lang',$langForSelection,time()+24*7*60*60);//set cookie to expire in 7 days } 内。您需要将其移到if

之外