Autor Zpráva
Big_D
Profil
Zdravím,
mam tuto podmínku:
		if(!session_is_registered("user") or session_is_registered("admin"))
    {
       					
		 /*  If is ONLY USER  */	
		if(session_is_registered("user"))
    {
      echo ' User panel';  
    }      
    /*  If is ADMIN  */
    if(session_is_registered("admin"))
    {
      echo '
      	Admin panel'; 
     } 
      
    }else{ 
     echo '
				//Přihlašovací formulář';          
    }	


A problém mam stím že když se přihlasím jako admin tak se mi vytvoří session admin, a když mam teda session admin a přihlašuju se jako uživatel (user) tak mě to user panel neukáže prostě jenom vytvoří se mi session user ale nepřihlásím. Potřeboval bych aby ta podmínka fungovala jako: Pokud bude nějaká session registrováná

EDIT: Ten mě napadlo že při přihlášení bych mohl všechny session vymazat (session_destroy), NEPOMOHLO
Tori
Profil
Můžete rozlišovat třeba $_SESSION['prihlasen'] = true/false (= jakýkoli uživatel/admin je přihlášený, zobrazíme uživatelský panel) a $_SESSION['isAdmin'] = true/false (= přihlášený uživatel má práva administrátora, zobrazíme navíc možnosti pro admina).

Jinak bych používala spíš pole $_SESSION, připadá mi to více blbuvzdorné proti náhodnému přepsání dat session (a mimo to vám tohle od PHP-5.3 bude vyhazovat varování).

edit: Můžete ještě ukázat kód z přihlášení, co kde nastavujete do session?
Sevo
Profil *
Ta negacia v prvej podmienke nieje nahodou ten dovod?
Big_D
Profil
Po vyplnění formuláře se nick a heslo v md5 formátu checkne kolik je záznamů v DB pokud 0 tak to vyhodí JS alert. Pokud ne tak dám session u admina session_register("admin"); a u uživatele session_register("user");. Nic složitýho. Ale asi máte pravdu bude jednoduší když to udělám přes $_SESSION['prihlasen'] = true/false zdá se mi to jednoduší tak děkuju za radu.

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