Ahoj všem, potřeboval bych poradit. Mám vytvořené logování. po zadání jména a hesla se heslo ověří se záznamem v DB. Pokud se zhoduje vytvoří se sessions a nastaví uživatele jako přihlášeného. Tím mu zpřístupním několik odkazů. Až sem vse funguje. Když se přihlásím tak se mě ukáže skrytý obsah a proměná $_SESSION['jmeno'] vrací jméno přihlášeného uživatele. Ale když kliknu na jakýkoliv odkaz a dojde ke znovunačtení stránky, sessions je pryč a vrátí mě to zpět na přihlašovací obrazovku. Nevím jak dál dám sem můj kód snad v něm najdete chybu.
public function loginUser(){
$this -> url = $_SERVER[PHP_SELF];
if ((empty($_SESSION['email'])) AND (isset($_POST['email']))) {
/* jestli je odeslany formular s prihlasenim nacte podle zadaneho e-mailu
uzivatele a overi jeho heslo */
$this -> sql ="SELECT * FROM user WHERE email = '".$_POST['email']."'";
$result = parent::sql($this -> sql);
$this -> user = mysql_fetch_array($result);
self::overHesloUser($_POST['heslo']);
}
else self::ukazFormularPrihlaseni();
// pokud neni User prihlaseny a neni odeslany formlar, obrazi formular s prihlasenim
}
public function overPrihlaseni() {
if (isset($_SESSION['email'])) {
return true;
print "<br>Uzivatel ".$_SESSION['jmeno']." ".$_SESSION['primeni']." je prihlasen";
}
return false;
}
private function overHesloUser($heslo){
// overeni hesla Usera
$hesloSha = sha1($heslo);
if ($this->user["heslo"] == $hesloSha) {
$_SESSION = $this ->user;
print "<br> jmeno ".$_SESSION['jmeno'];
Print "Vitej";
}
else {
print "spatny heslo";
self::ukazFormularPrihlaseni();
}
}
a volám to následonvě
$user = new user;
$user -> loginUser();
if ($user -> overPrihlaseni()) {
$user -> ukazFormularOdhlaseni();
skrytá část kódu
}