2017-09-14 3 views
1

Ich habe versucht, Wert von "DEFINE" in Cookie setzen.Wert von "DEFINE" in Cookie setzen

define("DEFUALT_LANG", "EN"); 

if(!isset($_COOKIE['user_lang'])) 
    setcookie("user_lang", DEFUALT_LANG, time()+3600*24*365); 

echo "lang:".$_COOKIE['user_lang']; 

Druck ist: DEFUALT_LANG

ein wenig seltsam, nicht wahr? es sollte "EN" sein ...

+0

es nicht reproduzieren konnte. Ausgaben 'lang: EN'. PHP 5.6 –

+1

'DEFUALT' Sie erkennen, dass das ein Schreibfehler ist. Das Wort ist 'DEFAULT' geschrieben. –

+2

Plus, Cookies werden erst eingestellt * nachdem * es eingestellt wurde und die Seite (n) neu geladen werden. –

Antwort

0

Sie können constant($string) verwenden, um den Wert zu ermitteln.

http://php.net/manual/fr/function.constant.php

setcookie("user_lang", constant("DEFUALT_LANG"), time()+3600*24*365);

+1

Wenn Sie das Dokument lesen, sollte diese Syntax das gleiche Ergebnis wie das von OP verwenden. Mit OP-Code stimmt etwas nicht. – Chris

-1

mit diesem Ersetzen Sie den Code ein:

define("DEFUALT_LANG", "EN"); 

if(!isset($_COOKIE['user_lang'])) 
    setcookie("user_lang", constant(DEFUALT_LANG), time()+3600*24*365); 

echo "lang:".$_COOKIE['user_lang'];