PHP: Proč nefungují cookies ve funkci ?
Nefungují mi cookies ve funkci, ale mimo funkci ano.
1.) Prohlížeč má cookies povoleny
2.) Ano, neposílám nic na výstup, protože jinak by mi to hlásilo: Cannot modify header information - headers already sent...
Takže co funguje?
<?php
setcookie ("TestCookie", " Treba tento řetezec si uložím ",time()+3600);
echo $HTTP_COOKIE_VARS["TestCookie"];
// Při dalším navštívení stránky se korektně dozvím řetezec.
?>
Takže co nefunguje ?
<?php
function nejakaFunkce()
{
setcookie ("TestCookie", " Treba tento řetezec si uložím ",time()+3600);
echo $HTTP_COOKIE_VARS["TestCookie"];
// donekonecna vyhazuje: Notice: Undefined variable: HTTP_COOKIE_VARS ]:( :-?
}
nejakaFunkce();
?>
Už je hodně hodin a tak mi to nemyslí. Pravděpodobně to má co společného s globální versus lokální proměnnou.
Děkuji za vysvětlení
Takže řešení je:
Jestli chcete tak to smažte. Je na mě asi fakt pozdě.
a nie je to nahodou tym, ze by si mal pouzit globalnu premennu: $_COOKIE. $HTTP_COOKIE_VARS sa pouzivala v skorsich verziach v kombinacii s register_globals = on, alebo tak, ako si to robil ty.
Last updated: Sun, 20 Feb 2005
http://mirrors.inway.cz/manual/cs/function.setcooki e.php
Oni to tam uvádějí jak píšu.
Nicméně ano máš pravdu
funguje kupodivu i bez specifikace global
toto je v najnovsom en. manualy priamo z php.net:
HTTP Cookies: $_COOKIE
comment: Introduced in 4.1.0. In earlier versions, use $HTTP_COOKIE_VARS.
An associative array of variables passed to the current script via HTTP cookies. Automatically global in any scope.
This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_COOKIE; to access it within functions or methods, as you do with $HTTP_COOKIE_VARS.