Napisałem skrypt do logowania oraz kontroli sesji na każdej podstronie. Ale mam kilka pytań, skrypt wygląda mniej więcej tak:
logowanie.html > loguj.php( tutaj użytkownik jest autoryzowany oraz zmienna superglobalna $_SESSION zostaje ustawiona na login usera, następnie user zostanie przekierowany za pomocą header location na inną stronę a jeżeli błędnie wprowadził dane to wysyłamy go opcją header location do logowanie.html) > glowna.php (tutaj następuję kontrola sesji, jeżeli zmienna $_SESSION nie jest ustawiona do leci user na logowanie.html za pomocą header location).
A moje pytanie:
1) Czy używanie header(loation:) do kierowania userów jest bezpieczne? I czy tak powinno się kierować userów? Chciałbym możliwie najbardziej oddzielić html od php i w skryptach nie umieszczać wyników bez wcześniejszej autoryzacji za pomocą pliku przejściowego takiego jak loguj.php, który służy tylko do tego, żeby kierować ruchem

2) Czy kontrolę sesji na podstronach bezpieczniej byłoby sprawdzać w taki sposob:
if(isset($_Session[login]) && isset($_Session[id_w_bazie])){
$sql= select id,login from jakas_tabela where id=$id_w_bazie and login=$ogin
$wynik=db->query($sql)
if($_SESSION[login]==$wynik[1] && $SESSION[id]==$wynik[0])
return true;
else
return false
}
else return false;
Czy wystarczy samo if(isset($_Session[login]) && isset($_Session[id_w_bazie])) ?