我收到了标题中可以看到的错误。错误所在页面上的代码如下:
<?php
if (!isset($_SESSION))
{
session_start();
}
include "./option.php";
if($start==true)
{
$ee= md5(microtime());
ini_set('session.gc_maxlifetime', 3600);
$_SESSION['new_version']=true;
if((!isset($_GET['ee']) or !isset($_SESSION['tempLang'])))
{
include "./lang/country_code.php";
function langue($l)
{
if(array_key_exists($l, $_GET["lang_con"]))
{
return $_GET["lang_con"][$l];
} else {
return "US";
}
}
$lang = substr(strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"]), 0, 2);
if ($lang != ''){$con = langue($lang);}else{$con = "US";}
?>
然后假定的空数组在正确的包含文件中,代码在这里:
$_GET["lang_con"] = array(
"it" => "IT",
"ru" => "RU",
"sv" => "SE",
"en" => "US",
"es" => "ES",
"pl" => "PL",
"fr" => "FR",
"no" => "NO",
"da" => "DK",
"de" => "DE",
"nl" => "NL",
"tr" => "TR",
"pt" => "BR",
"zh" => "TW",
"id" => "US",
"he" => "IL",
);
我真的不知道问题所在。
请帮忙,
干杯
答案 0 :(得分:0)
如果&#34; lang_con&#34;数组在option.php
或lang/country_code.php
包含文件中定义,那么上面的代码应该能够访问它。虽然,您可以在使用array_key_exists()之前添加另一个检查:
if (is_array($_GET["lang_con"]) && array_key_exists($l, $_GET["lang_con"])) {
但是你应该永远不要写 $ _GET超全局数组,只读。如果您需要将变量注入函数,请使用任何其他方式(global keyword,passing as function arguments等),但绝不要写$ _GET,$ _POST,$ _REQUEST superglobals,因为它们有不同的目的。