Autor Zpráva
trol
Profil *
Mám problém session mi přestalo tak nák fungovat.

<?php
session_start();

echo $_SESSION['username']; //nevypíše se

if (session_is_registered('username'))
{
echo 'je tam';       //ukazuje že tam je tak proč se nevypíše?
}
else
{
echo 'neni tam';
}

Jenže v jiných částech mi normálně funguje už nevím co stím.


todle je samostatný soubor test.php nic jiného se v něm nenachází.
Alphard
Profil
Není to třeba prázdné? Pro tyto výpisy raději třeba var_dump(), jinak session_is_registered() je minulost, nadále nepoužívat.
ATi
Profil
trol, Pokud to dobře chápu, je to login ale težko říci z tohoto kousku kodu.Nevim co ta session ma delat, zrejme prihlasovat v tom pripade nemuzes po nastartovani session vypisovat hned 'username' ktere neni ulozene v session.Doporucoval bych ti misto session_is_registered osetrit kontrolu prihlaseni svou vlastni promenou napr.
<?php
session_start();
//Zde uvedu priklad pro prihlaseni (pomoci GETu ale heslo by melo byt pres POST)

if($username == $_GET["username"] && $password == md5($_GET["password"])) { //Overuji udaje uzivatele,ktery se pokousi o login zda jsou OK
//Kdyz udaje ok uloz udaje do session
$_SESSION["username"] = $_GET["username"];//Uloz jmeno do session
$_SESSION["password"] = md5($_GET["password"]);//Uloz heslo do session
$_SESSION["user_logged"] = "1"; //Tady je to cim kontrolujes uzivatele 'zda tam je, nebo neni'(misto tveho session_is_registered())
}
if($_SESSION["user_logged"] == "1") {//Kdyz jsou udaje ok a session ulozene vypis udaje
echo $_SESSION['username']; //Vypíše username přihlášeného bez jakýchkoliv problémů
echo "je tam";
}
else { echo "není tam"; }
?>
Je to 100% funkční a máš zajištěné že když pak kdekoli v souboru budeš potřebovat kontrolovat přihlášení
jednoduše začneš session_start(); a kontrolu v souboru provedeš if($_SESSION["user_logged"] == "1") { }

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: