Autor Zpráva
Prefin
Profil
Ahoj všichni.
Při příchodu nového klienta na stránky mu musím přiřadit jedinečný kód.
Takhle:
if(!$_SESSION["klient"]) {
     $_SESSION["klient"] = md5(gethostbyaddr($_SERVER['REMOTE_ADDR']) . time() . rand(0,1000000));
}

Na začátku stránky mám samozřejmě:
@session_start();

Ale při znovunačtení se mi do session ukládá pořád nová hodnota.
Nikde v kódu si to omylem nemažu, to jsem už překotroloval asi desetkrát.
Díky za pomoc.
HajekJirka
Profil
Prefin:
Ale při znovunačtení se mi do session ukládá pořád nová hodnota.
Mě ne. Takže to zkus překontrolovat po jedenácté. :-)
Keeehi
Profil
var_dump($_SESSION);
před ifem vypíše co?

+ ten zavináč před session_start potlačuje vypisování chybových hlášek, takže kdyby nějaká vznikla (nejčastěji headers already sent...) tak se o tom vůbec nedozvíte. Takže ten zavináč smažte.
Prefin
Profil
To vím že zavináš potlačuje chybovky.
Píše mi to tohle:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/www/mydigest.net/subdomeny/oriflame/databaze/detail_vyrobku.php:1) in /home/www/mydigest.net/subdomeny/oriflame/databaze/detail_vyrobku.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/www/mydigest.net/subdomeny/oriflame/databaze/detail_vyrobku.php:1) in /home/www/mydigest.net/subdomeny/oriflame/databaze/detail_vyrobku.php on line 2


Tohle leze t var_dump:
string(32) "be7993c950e1f71c26f3fb948e271346"
Keeehi
Profil
Prefin:
Tak se podívej na ten odkaz v [#3] a podle toho to vyřeš.
Prefin
Profil
Bylo to BOMem. Stačilo v Notepadu++ změnit kódování na UTF bez BOM a jede to.
Divný je že jsem to ještě nikdy neřešil.
Díky
ShiraNai7
Profil
Prefin:
md5(gethostbyaddr($_SERVER['REMOTE_ADDR']) . time() . rand(0,1000000));

Co takhle uniqid()
Prefin
Profil
Neznám ale v manuálu to vypadá zajímavě. Zkusím to.
Díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0