我最近开始做一些php并使用cookie制作了用于语言更改的代码。它在localhost上完全正常工作,但是当我上传它时,浏览器似乎没有保存任何cookie。
所以我尝试为localhost和server设置域名,但它仍然不起作用。
$whitelist = array(
'127.0.0.1',
'::1'
);
if(in_array($_SERVER['REMOTE_ADDR'], $whitelist)){
$domain = '.localhost';
} else {
$domain = '.bjarnesc.de';
}
if (isset($_GET['lang'])) {
$lang = $_GET['lang'];
setcookie('lang', $lang, (time()+(86400*30)), "/", $domain);
$_COOKIE['lang'] = $lang;
}
else if (!isset($_COOKIE['lang'])) {
setcookie('lang', 'de', (time()+(86400*30)), "/", $domain);
$_COOKIE['lang'] = 'de';
}
if ($_COOKIE['lang'] == 'en') {
include("../languages/en.php");
} else if ($_COOKIE['lang'] == 'de') {
include("../languages/de.php");
}
答案 0 :(得分:0)
最可能的问题是 - 由于您包含的文件中的空格或同一文件本身已经发送了标头。要么修复它,要么在开始时设置cookie。