首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php设置默认lang

问使用php设置默认lang
EN

Stack Overflow用户
提问于 2014-01-27 16:51:27
回答 2查看 2.3K关注 0票数 1

我试着用cookie建立一个多功能网站。一切都很好,但我在设置默认语言时遇到了问题。当我到达没有参数的根网站时,我在php中得到了一个错误“未定义索引”。

代码语言:javascript
复制
<?php
if (isset ($_COOKIE['CHOIXlang']) && $_GET['langue'] != 'fr' && $_GET['langue'] != 'en' && $_GET['langue'] != 'es') 
{           
$langue = $_COOKIE['CHOIXlang'];
}
else if ($_GET['langue'] == 'en' || $_GET['langue'] == 'fr' || $_GET['langue'] == 'es')
{ 
$langue = $_GET['langue'];
set_cookie($langue);
}
else            
{
$langue = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);
set_cookie($langue);
}
?>

<?php
function set_cookie($langue)
{

$expire = 365*24*3600;

if (setcookie("CHOIXlang", $langue, time() + $expire) != TRUE)
    {

    }
else
    {
    setcookie("CHOIXlang", $langue, time() + $expire);

    }
}
?>

在身体上:

代码语言:javascript
复制
<?php 

if ($_GET['langue'] == "fr" || $langue == "fr") 
{
    include('lang/fr-lang.php');
}
elseif ($_GET['langue'] == "en" || $langue == "en")
{
    include('lang/en-lang.php');
} 
elseif ($_GET['langue'] == "es" || $langue == "es")
{
    include('lang/es-lang.php');
} 


?>

当网站打开时,我错过了什么来设置默认语言?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-27 16:53:20

您需要检查get参数langue是否已设置:isset($_GET['langue'])

代码语言:javascript
复制
<?php 

if (!isset($_GET['langue'])
{
    include('lang/default-lang.php');
}
elseif ($langue == "fr") 
{
    include('lang/fr-lang.php');
}
elseif ($langue == "en")
{
    include('lang/en-lang.php');
} 
elseif ($langue == "es")
{
    include('lang/es-lang.php');
} 
?>

另外,您需要将这一行:$langue = $_GET['langue'];更改为:

代码语言:javascript
复制
if (isset($_GET['langue']))
   $langue = $_GET['langue'];

更新

您无法访问不存在的任何GET值。首先,您需要检查是否设置了。如果设置了参数,isset($_GET['langue'])将返回true,因此只需在代码开始时使用此检查一次。我建议这样做:

代码语言:javascript
复制
$langue = "";
if (!isset($_GET['langue']){
    $langue = $_GET['langue'];
}

然后只使用$langue而不是$_GET['langue']。

票数 1
EN

Stack Overflow用户

发布于 2014-01-27 16:57:08

设置默认值Lan应该是这样的

代码语言:javascript
复制
if (@$_GET['lang'] == 'en') include('en-lang.php');
else include('fr-lang.php'); 

对它使用$_GET:

这是一个有点长的喘息,但可能是一个稍好的方法:

代码语言:javascript
复制
<?php 

session_start(); 

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

if (isset($_GET['lang'])) {
     $lang = preg_replace('/[^a-zA-Z]/', '', $_GET['lang']);
    $_SESSION['lang'] = $lang; 
}

if (!isset($lang)) $lang = 'fr'; 
$langfile = $lang . '-lang.php'; 

if (file_exists($langfile)) include ($langfile); 
else include('fr-lang.php');

?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21386670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档