Tworze uwierzytelnianie na strone internetową. Rejstracja użytkownika i logowanie już działa jednka mam problem z sesja.
Po pierwsze czy dobrze rozumiem. Sesja ma tak jakby pamietać uzytkowniaka, który został zalogowany bez względu na to na jakiej podstronie naszego serwisu się znajduje?
Sprawa wyglada nastepująco
Oto skrypt
Kod
<?php
session_start();
require('funkcje_dolaczone.php');
$nazwa_uzytkownika=$_POST['nazwa_uzytkownika'];
$haslo=$_POST['haslo'];
if($nazwa_uzytkownika && $haslo)
{
try
{
zaloguj($nazwa_uzytkownika, $haslo);
//jezeli uzytkownik jest w bazie danych uzytkownikow zostanie zalogowany i utworzona zostanie sesja
$_session['poprawny_uzytkownik']=$nazwa_uzytkownika;
}
catch(exception $blad)
{
naglowek_html();
menu_pionowe_html();
echo $blad->getMessage();
stopka_html();
exit;
}
}
naglowek_html();
menu_pionowe_html();
sprawdz_uzytkownika();
echo' czemu nie zalogowany?';
echo $_session['poprawny_uzytkownik'];
if (isset($_session['poprawny_uzytkownik']))
echo $_session['poprawny_uzytkownik'];
stopka_html();
?>
session_start();
require('funkcje_dolaczone.php');
$nazwa_uzytkownika=$_POST['nazwa_uzytkownika'];
$haslo=$_POST['haslo'];
if($nazwa_uzytkownika && $haslo)
{
try
{
zaloguj($nazwa_uzytkownika, $haslo);
//jezeli uzytkownik jest w bazie danych uzytkownikow zostanie zalogowany i utworzona zostanie sesja
$_session['poprawny_uzytkownik']=$nazwa_uzytkownika;
}
catch(exception $blad)
{
naglowek_html();
menu_pionowe_html();
echo $blad->getMessage();
stopka_html();
exit;
}
}
naglowek_html();
menu_pionowe_html();
sprawdz_uzytkownika();
echo' czemu nie zalogowany?';
echo $_session['poprawny_uzytkownik'];
if (isset($_session['poprawny_uzytkownik']))
echo $_session['poprawny_uzytkownik'];
stopka_html();
?>
i teraz tak kiedy uzytkownik zostanie sprawdzony w bazie danych tworzymy nagłówek i menu. I pojawi asie problem. Chciałem, żeby funkcja sprawdz_uzytkownika() sprawdzala czy jest on zalogowany i wyświetlala jego nazwe. Jednek to nie nasepuje przechodzi od razu do else i wyswietla, że nikt nie zalogowany. Natomiast jak pozniej sprawdzam wartość zmiennej to pokazuje ona nazwe uzytkownika to samo gdy sprawdzam to isset.
kod funkcji sprawdz_uzytkwonika()
Kod
function sprawdz_uzytkownika($_session)
//sprawdza czy uzytkownik jest zalogowany
{
if (isset($_session['poprawny_uzytkownik']))
{
echo $_session['poprawny_uzytkownik'];
}
else
{
//naglowek_html();
//menu_pionowe_html();
echo'Nikt nie zalogowany';
//stopka_html();
//exit;
}
}
//sprawdza czy uzytkownik jest zalogowany
{
if (isset($_session['poprawny_uzytkownik']))
{
echo $_session['poprawny_uzytkownik'];
}
else
{
//naglowek_html();
//menu_pionowe_html();
echo'Nikt nie zalogowany';
//stopka_html();
//exit;
}
}
Kiedy do funkcji dam parametr $_session to niby działa, ale czy wtaki wlansie sposob ma się to odbywać?
Proszę o jakies sugestie