acces in pagina doar la user logat

sterica
Mesaje: 226

acces in pagina doar la user logat

Salutare,

Am o pagina de login.php unde introduc user, parola si am un buton de submit, daca este introdus corect, imi face trimitere cu:

Cod: Selectaţi tot

header ('Location: index.php');
daca nu sunt corecte datele primesc un mesaj de eroare. Problema mea apare catunci cand in browser este tastat localhost/site/index.php se deschide in continuare pagina, teoretic partea de login o am asa doar de dragul de a fi. Ce pot face ca sa nu imi deschida pagina daca nu am introdus user si parola.

Multumesc!

MarPlo
Salut
1. In "login.php" inregistrezi un $_SESSION daca datele de logare sunt trimise si corecte, altfel stergi acea sesiune.

Cod: Selectaţi tot

if($date_logare_corecte){ $_SESSION['loged'] ='Name'; } else if(isset($_SESSION['loged'])) unset($_SESSION['loged']);
2. In paginile cu acces doar cu logare verifici daca exista acea sesiune.

Cod: Selectaţi tot

if(isset($_SESSION['loged'])){ echo 'Content..'; } else echo 'You must logg in.';
- In toate acele fisiere sa fie la inceput: session_start().

sterica
MarPlo, cum imi recomanzi sa procedez in cazului lui acel echo 'Content..' ; atunci cand pagina este formata din foarte multe linii de cod HTML. Va trebui sa o transpun sa fie interpretata de php prin acel echo, sau am o alta posibilitate mult mai usoara?
Multumesc!

MarPlo
O varianta mai simpla in cazul acelui "echo" cu continutul paginii e aceasta:

Cod: Selectaţi tot

if(isset($_SESSION['loged'])){ include 'get_content.php'; } else echo 'You must logg in.';
Iar in "get_content.php" definesti continutul cum stii.

- Ca sa nu se poata accesa din browser fisierul get_content.php, adaugi in fisieru ".htaccess" acest cod:

Cod: Selectaţi tot

# Blocks the external access to get_content.php <files get_content.php> order allow,deny deny from all </files>

sterica
M-am gandit si la a include o pagina in acel if, insa asa cum ai spus si tu se poate accesa din browser, dar .htaccess se pare ca face minuni :)
Voi folosi pentru fiecare fisier codul tau:

Cod: Selectaţi tot

<files get_content.php> order allow,deny deny from all </files>
Multumesc mult de ajutor!

cadou
Si daca as avea un fisier intr-un folder... de exemplu calea fisierului (daca as tasta in browser) .....ro/Dosar/Fisier.php , iar fisier.php nu as dori sa il acceseze cineva direct din browser,

Am incercat sa pun in htaccess asa :

Cod: Selectaţi tot

<files folder/fisier.php> order allow,deny deny from all </files>
, dar nu a mers, se putea accesa din browser, apoi daca am pus asa :

Cod: Selectaţi tot

<files fisier.php> order allow,deny deny from all </files>
Nu se putea accesa din browser, dar nici din alta parte dintr-un form prin ajax ...

MarPlo
Nu mai merge sa accesezi din browser, ajax sau alt mod extern un fisier blocat cu .htacces.
Se poate accesa doar dintr-un script de pe server, de exemplu cu include() in alt fisier .php.

cadou
Pai si pentru fisiere care nu ar trebui accesate extern/din browser, sa inteleg ca trebuie sa punem cumva conditii sa nu fie accesate direct din adress bar .... deci asta cu regula in htaccess cam pica ....

Subiecte similare