Прежде всего, пожалуйста, ответьте на вопрос, так как я только начинаю с этого.
Итак, у меня в index.php работает следующее:
<?php
if(isset($_COOKIE['language'])) {
if (($_COOKIE['language']) == 'en')
print "<SCRIPT LANGUAGE=\"JavaScript\">window.location=\"URLGOESHERE\"</SCRIPT>";
elseif (($_COOKIE['language']) == 'fr')
print "<SCRIPT LANGUAGE=\"JavaScript\">window.location=\"URLGOESHERE\"</SCRIPT>";
}
else {
print "<SCRIPT LANGUAGE=\"JavaScript\">window.location=\"URL-FOR-COOKIE-SETTING-PAGE\"</SCRIPT>";
}
?>
Перенаправление оператора else возвращает страницу, на которой пользователь устанавливает свои языковые предпочтения, и после этого эта страница устанавливает файл cookie, а затем отправляет их в соответствующую версию сайта. Однако, когда пользователь возвращается к этому главному index.php, он не может найти cookie и пропускает прямо к выражению «else». Раньше переадресация делалась с PHP, используя 'header', и тогда он тоже не работал. Я читал в другом месте, что это может создать некоторые проблемы, поэтому я переключил его, чтобы попробовать напечатать Javascript.
Странная вещь в том, что я могу найти cookie, как только он будет установлен, именно там, где он должен быть, с правильным именем и переменной. Я сделал это точно так, как говорят мне книги (насколько мне известно). Я пробовал это как в Firefox, так и в Safari без удачи.
Что я пропустил?
РЕДАКТИРОВАТЬ : Вот скрипт, который фактически устанавливает cookie. Параметр передается по ссылке через URL-кодировку, например: <a href="setlang.php?lang=en">
<?php
$lang = urlencode($_GET["lang"]);
setcookie("language", $lang, time()+60*60*24*90, ".URL");
switch ($lang) {
case 'en':
header('Location: URLGOESHERE');
break;
case 'fr':
header('Location: URLGOESHERE');
break;
}
?>