Zabezpieczanie koknkretnej strony hasłem


(Ovitz Pl) #1

Witam mam pytanie.

Czy w systemie logowania opartym na pliku .txt da się zabezpieczyć konkretną strona tak aby nie dało się na nią wejść bez podania hasła nawet znając linka do niej?


(Kutar 0) #2

Kiedy użytkownik się loguje, twórz sesję. Po wywołaniu innej strony sprawdzasz obecność ów sesji (a konkretnie utworzonej zmiennej sesyjnej i ewentualnie jej wartość).

http://pl.php.net/manual/pl/ref.session.php


(Ovitz Pl) #3

Połapac sie za bardzo w tym nie mogę. Sesja mam stworzyć podczas logowania, ale w jaki sposób?? I która komenda jest odpowiedzialna za sprawdzenie czy ta sesja która została już utworzona podczas logowania jest nadal aktywna?


(Paramedyk) #4

Samą blokadę strony robi się prosto.

Na samym początku strony sprawdzasz czy dana osoba jest zalogowana, jeśli nie wywołujesz funkcję exit() [lub wypisujesz konkretny komunikat].


(Kutar 0) #5

Wygląda to mnie więcej tak:

  1. w każdym pliku, w którym ma być wykorzystana sesja (czyli w każdym pliku, który ma być dostępny po zalogowaniu), na samy początku dajesz :

    session_start();

  2. w momencie logowania, jeśli użytkownik wpisał prawidłowy login i hasło, tworzysz nową zmienną sesyjną i dajesz jej jakąś wartość. Wszystkie zmienne sesyjne przechowuje tablica superglobalna _SESSION

    if(zalogowano)

    {

    $_SESSION[‘mojazmienna’]=1;

    }

następnie, w pliku, który ma być dostępny dla zalogowanych sprawdź czy ta zmienna istnieje i czy ma prawidłową wartość:

if(isset($_SESSION['mojazmienna'])&&$_SESSION['mojazmienna']==1) {

//zawartość pliku

}

else {

//przekieruj na stronę logowania

}

Pamiętaj, aby udostępnić opcję ‘wyloguj’, w której wykorzystasz funkcję

session_destroy();

Więcej poczytasz w linku, jaki dałem wyżej.


(Marcins2009) #6

Może nie na pliku txt ale można łatwo przerobic ja kiedyś zrobiłem coś takiego

<?

session_start();

if ($_GET[wyloguj]==1)

{

$_POST[nick]=="";

$_POST[heselo]=="";

$_GET[wyloguj];

session_destroy();

}


if ($_POST[nick]=="1"&&$_POST[heselo]=="2"&&$_GET[wyloguj]!=1)

{

$_SESSION['sesje']=89076;

}

else

{

echo "Podaj prawidłowe dane" ;

}

if($_SESSION['sesje']==89076&&$_GET[wyloguj]!=1)

{

echo 'Panel Admin';

echo 'Logout';

}

else {

echo '


Login :

Hasło :



' ;

}


?>[/code]

Mam nadzieje że sie przyda :mrgreen: