else {
if ($_COOKIE['HotspotLanguage'] == 'ENG') {
$url_lang_code = '?lang=eng';
header('Location: '.$url_captive_portal.$url_lang_code.'');
} elseif ($_COOKIE['HotspotLanguage'] == 'ALB') {
$url_lang_code = '?lang=alb';
header('Location: '.$url_captive_portal.$url_lang_code.'');
} elseif ($_COOKIE['HotspotLanguage'] == 'MKD') {
$url_lang_code = '?lang=mkd';
header('Location: '.$url_captive_portal.$url_lang_code.'');
}
}
从上面的代码中可以看出,我已经定义了一个变量$url_lang_code
;但是,我的变量不在if
语句之外工作。
URL被重写,这有效。但是,如果我在if语句之外的某处使用$url_lang_code
,它就不起作用......
我做错了吗?
答案 0 :(得分:5)
您正在使用header()方法,该方法会保留当前脚本并加载您要求的页面。
因此,您基本上丢失了该范围,您可以将其存储在$ _SESSION或$ _COOKIE var中,并从您要求的其他页面中检索它。
类似于:
else {
if ($_COOKIE['HotspotLanguage'] == 'ENG') {
$_COOKIE['url_lang_code'] = '?lang=eng';
header('Location: '.$url_captive_portal.$url_lang_code);
} elseif ($_COOKIE['HotspotLanguage'] == 'ALB') {
$_COOKIE['url_lang_code'] = '?lang=alb';
header('Location: '.$url_captive_portal.$url_lang_code);
} elseif ($_COOKIE['HotspotLanguage'] == 'MKD') {
$_COOKIE['url_lang_code'] = '?lang=mkd';
header('Location: '.$url_captive_portal.$url_lang_code);
}
}