Salut, je crée deux fichiers pour changer mon forum (Langue chinois et en anglais)quelque temps SetCookie() ne fonctionne pas
enForum.php
<?php
function foo() {
global $_COOKIES;
setcookie('ForumLangCookie', 'en', time()+3600, '/', '.mysite.com');
echo 'running<br>';
$_COOKIES['ForumLangCookie'] = 'en';
bar();
} // foo()
function bar() {
global $_COOKIES;
if (empty($_COOKIES['ForumLangCookie'])) {
die('cookie_name is empty');
}
echo 'Language =' . $_COOKIES['ForumLangCookie'];
echo "<br>";
} // bar()
foo();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>forum EN Version</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
please be patient ...
<script LANGUAGE='javascript'>
location.href='http://www.mysite.com/forum/index.php';
</script>
</body>
</html>
cnForum.php
<?php
function foo() {
global $_COOKIES;
setcookie('ForumLangCookie', 'cn', time()+3600, '/', '.mysite.com');
echo 'running<br>';
$_COOKIES['ForumLangCookie'] = 'cn';
bar();
} // foo()
function bar() {
global $_COOKIES;
if (empty($_COOKIES['ForumLangCookie'])) {
die('cookie_name is empty');
}
echo 'Language =' . $_COOKIES['ForumLangCookie'];
echo "<br>";
} // bar()
foo();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>forum CN Version</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
please be patient ...
<script LANGUAGE='javascript'>
location.href='http://www.mysite.com/forum/index.php';
</script>
</body>
</html>
Il y a quelques dossiers comprenant include template('logon');
, include template('regist');
etc., j'écris certains c ode pour obtenir la valeur Cookie et contrôler le flux pour charger différents fichiers modèles.
$lang = $_COOKIE["ForumLangCookie"];
// for Debug
// echo '$lang is '.$lang;
// echo '<br/>';
if ($lang == "cn"){
include template('logon');
}
else if ($lang == "en"){
include en_template('logon');
}
Mais parfois le SetCookie() ne fonctionne pas. Ai-je besoin d'ajouter Sleep(someSeconds);
pour mon code?
$ Il n'y a pas besoin d'utiliser '_COOKIE' global $ - ce tableau est l'un des [plusieurs] superglobales prédéfinies (http://php.net/manual/ fr/language.variables.superglobals.php) et il est accessible de partout. – Crozin
Vous pourriez inclure un seul des exemples de code dans la question, car ils semblent être presque les mêmes. – mkj
@mkj, je suppose que l'utilisateur clique sur le lien de l'URL pour triger la configuration de la langue différente. C'est pourquoi j'ai créé deux fichiers. –