Autor Zpráva
blizzy_
Profil *
Dobrý den,
mám v php udělané přihlášení přes SESSION, po ověření uživatelského jména a hesla se zaregistruje proměnná "prihlasen" do session a nastaví se jí hodnota. Poté už jen kontroluji její hodnotu a zpřístupním další obsah jen pro přihlášené. Po odhlášení provedu destroy a session data se ztratí.

Na localhostu vše funguje, ovšem na serveru Forpsi se hodnota session nepřenáší. Uloží se a na další stránce už nemá svou hodnotu. Zajímavé ovšem je, že proměnná stále zůstává registrovaná (podle funkce isset nebo session_register).

Na všech stránkách samozřejmě mám session_start úplně na začátku. Funkce session_get_cookie_params, session_cache_expire, session_cache_limiter mi vrací na localhostu i na serveru stejné hodnoty (pokud je to pro tento problém podstatné).

Díky za pomoc.
Venca V
Profil
To vypadá, že se ti ta proměnná nějak přetypovala:-) Zkus si vypsat její obsah, pak si zkontroluj skripty, kde se to mohlo stát...
blizzy_
Profil *
Zkouším si vypsat její obsah a nevypíše vůbec nic, funkce is_null vrací false a empty vrací true.

Naplňuji ji tímto způsobem:
session_register("prihlasen");
$_SESSION["prihlasen"]=1;

Pokud si nechám hodnotu vypsat hned po přiřazení, je vše pořádku, problém nastává až na další stránce.

Dále jediné rozdíly mezi localhostem a Forpsi podle funkce ini_get, týkající se SESSION jsou následující:
session.bug_compat_42: localhost 0, forpsi 1
session.gc_divisor: localhost 1000, forpsi 100
session.hash_bits_per_character: localhost 5, forpsi 4
Leo
Profil
session_register("prihlasen");
$_SESSION["prihlasen"]=1;

session_register je stary zpusob, dnes zbytecny, Leo
Mastodont
Profil
blizzy_
V nápovědě k funkci session_registered máš jasně napsáno:
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().
Tyhle dva způsoby se prostě míchat nesmí.
blizzy_
Profil *
Díky moc, takto už to funguje jak na localhostu, tak na serveru. Příště budu věnovat větší pozornost PHP dokumentaci.

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