Neden yerelleştirme çerez değiştirmek istemiyor gibi görünüyor?

3 Cevap php

Neden kurabiye cant change?

Eğer bir dil seçerseniz değiştirmek olamaz. Eğer dilini değiştirmek istiyorsanız çerezleri boşaltmak zorunda. Neden ki?

if (isset($_GET['setLang']) && $_GET['setLang'] == 'en' 
|| isset($_COOKIE['setLang']) && $_COOKIE['setLang'] == 'en') {
setcookie("setLang", 'en', time()+(3600*12)); //expires in 12 hours
include('language/en/common.php');
}


elseif (isset($_GET['setLang']) && $_GET['setLang'] == 'se' 
|| isset($_COOKIE['setLang']) && $_COOKIE['setLang'] == 'se') {
setcookie("setLang", 'se', time()+(3600*12)); //expires in 12 hours
include('language/se/common.php');
}

else if (isset($_GET['setLang']) && $_GET['setLang'] == 'fr' 
|| isset($_COOKIE['setLang']) && $_COOKIE['setLang'] == 'fr') {
setcookie("setLang", 'fr', time()+(3600*12)); //expires in 12 hours
include('language/fr/common.php');
}

// default language is english
else {
  include('language/en/common.php');
}

3 Cevap

Kesinlikle çerezleri değiştirebilirsiniz. Sen, $_COOKIE varolan ayar yazdım yol always {bir ayarı geçersiz kılar, çünkü orada var mantığı kullanarak dilleri değiştirmek için [(2)] edemez } (hariç en, $_GET yüzden şimdi size başka bir dil ile başladı eğer en geçmek mümkün olmalıdır, ilk kontrol edilecek yerde). Sen karşı tüm kontroller yapmak gerekir $_GET, sonra karşı tüm kontroller $_COOKIE, sen dilleri değiştirmek mümkün olmak istiyorum.

Mantık da, beynimi acıttı.

$language = $_GET['setLang'] || $_COOKIE['setLang']) || 'en';
setcookie("setLang", $language, time()+(3600*12));
include('language/' . $language . '/common.php');

Aynı etkiyi elde ve çerez sorunları (denenmemiş olsa) düzeltmek gerekir.

setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including and tags as well as any whitespace.

http://in3.php.net/setcookie