Я создал небольшой PHP-сайт, который работает на трех разных языках. Эти языки можно либо установить через $ _GET, либо $ _COOKIE с $ _GET, который будет первым, чтобы его можно было проверить, чтобы он мог перезаписать куки-файл, если это необходимо. Если я определяю нужный мне язык, я включаю файл, который содержит все мои переводы и устанавливает cookie для будущего использования. Код выглядит примерно так:cookie не сохраняется/правильно читается
<?php
if (isset($_GET['language'])) {
// if language in $_SET is English, load english translation and set a cookie for the future.
if ($_GET['language'] == 'EN') {
setcookie('language','EN', time()+31536000);
include 'tekstenEngels.php';
// if language in $_SET is French, load french translation and set a cookie for the future.
} elseif ($_GET['language'] == 'FR') {
setcookie('language','FR', time()+31536000);
include 'tekstenFrans.php';
// lastly if language in $_SET is Dutch, load Dutch translation and set a cookie for the future
} else {
setcookie('language','NL', time()+31536000);
include 'tekstenNederlands.php';
}
// the same but for cookies in case this isn't the first visit
} elseif (isset($_COOKIE['language'])) {
if ($_COOKIE['language'] == 'EN') {
include 'tekstenEngels.php';
} elseif ($_COOKIE['language'] == 'FR') {
include 'tekstenFrans.php';
} else {
include 'tekstenNederlands.php';
}
}
?>
Это прекрасно работает на моем locahost, но это, кажется, не писать/читать куки правильно при использовании на моем веб-сервере. Любые идеи, что я могу потерять/сделать неправильно?
Cookies включены. Иногда мой код работает как шарм, и он правильно запоминает все, а при других попытках мне нужно обновить мою страницу для успешного выполнения кода. Это действительно сводит меня с ума, потому что я не могу найти здесь проблему. – Rijstkoek
Чтобы отследить его, попытайтесь свести код к минимуму. Например: только опубликованный код, за которым следует только print_r ($ _ COOKIE) без каких-либо других условий, если и elses. Если это ненадежное/случайное, это может быть проблемой производительности сервера. Иногда [буферизация вывода] (http://php.net/manual/it/function.ob-start.php) может решить эти призрачные ошибки. – Joram