chcialbym sie dowiedziec ktory sposob uwierzytelniania - nie chodzi mi o samo uwierzytelnianie, ale o realizacje calego jego procesu - jest lepszy z punktu widzenia programistycznego i konwencji (czyli np. obie metody sa poprawne programistycznie, ale np. przyjmuje sie ze lepiej jest realizowac tak niz tak)
realizacja nr 1:
index.php
<?php // znaczniki html, head, body itp // wczytany css //tu wyswietlony formularz html'owy do wpisania loginu i hasla. action formularza ustawione na login.php ?>
login.php
<?php { // tu kod sprawdzajacy czy taki uzytkownik istnieje if( poprawny uzytkownik ) { $_SESSION['user_id']=jakis tam user id; } else { //lub ew. do pliku bad_login.php w ktorym jest rowniez formularz logowania ale z d
odatkowym tekstem bledny login i/lub haslo } } else { } ?>
index2.php - ten plik dostepny tylko dla zalogowanych uzytkownikow
<?php // znaczniki html, head, body itp // wczytany css, js'y { //wlasciwy kod strony //tutaj wszystkie linki kierujace wewnatrz witryny kieruja do INDEX2.php } else { //jesli by ktos chcial 'z palca' wpisac taki adres to zostanie przekierowany na index.php a tym samym okno logowania } ?>
realizacja nr 2:
index.php
<?php // znaczniki html, head, body // wczytany css, js'y { require('index2.php'); } { // formularz do logowania z akcja na login.php } ?>
login.php
<?php { // tu kod sprawdzajacy czy taki uzytkownik istnieje if( poprawny uzytkownik ) { $_SESSION['user_id']=jakis tam user id; } else { //lub ew. do pliku bad_login.php w ktorym jest rowniez formularz logowania ale z d
odatkowym tekstem bledny login i/lub haslo } } else { } ?>
index2.php
<?php //wlasciwy kod strony //tutaj wszystkie linki kierujace wewnatrz witryny kieruja do INDEX.php ?>
roznice pomiedzy realizacjami:
- stosujac realizacje nr 1 trzeba w dwoch miejscach wypisywac znaczniki html, head, body, dwukrotnie wczytywac css'a. W realizacji nr 2 robie to tylko raz, w pliku index.php gdyz index2.php jest includowany
- stosujac realizacje nr 2 nie ma sprawdzania w pliku index2.php czy poprawny uzytkownik, bo plik ten jest includowany i jego nazwa nie pokaze sie w pasku przegladarki (oczywiscie mozna to zrobic jak ktos wymysli sobie taka nazwe. no chyba ze sie go umiesci w jakims katalogu, do ktorego .htaccess zabroni dostepu)
- ale za to stosujac realizacje nr 1, po zalogowaniu nie przchodzimy juz przez strone index.php, tylko poruszamy sie juz tylko w obrebie pliku index2.php.
natomiast w realizacji nr 2 za kazdym razem jest przejscie przez plik index.php i sprawdzenie czy uzytkownik zalogowany i wybranie albo includowania pliku index2.php albo wyswietlenie formularza logowania - w realizacji nr 2 jesli w pliku login.php jesli spelniony warunek, ze poprawny uzytkownik to nie ma przekierowania na index2.php tak jak ma to miejsce w realizacji nr1 tylko spowrotem na index.php (juz ustawione $_SESSION["user_id"], wiec bedzie spelniony odpowiedni warunek w index.php)