Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie
Forum PHP.pl > Forum > PHP
PHPmaniak
Zrobiłem system logowania w php (z użyciem sesji):

System logowania składa się z 3 plików:
PLIK 1) parentindex.htm - formularz HTML logowania
PLIK 2) parentlog.php - plik sprawdza czy podany login i hasło wpisane w formularzu są dobre czy złe i w zalezności od tego nadaje wartość zmiennej sesyjnej
PLIK 3) parent.php - odczytuje zmienną sesyjną i w zalezności od wartości tej zmiennej pokazuje właściwe informacje lub też nie

PLIK 1) Formularz logowania - parentindex.htm:

  1. <FORM ACTION="parentlog.php" METHOD="POST">
  2. Login:<INPUT TYPE="TEXT" NAME="LOG">
  3. Password:<INPUT TYPE="password" NAME="PASS">
  4. <INPUT TYPE="submit" VALUE="Zaloguj""
  5. </FORM>



PLIK 2) Plik parentlog.php - do tego pliku przesłany jest wpisany login i hasło, skrypt ma za zadanie sprawdzić czy podano dobry login i hasło, jezeli hasło i login się zgadzają wówczas zmienna sesyjna $_SESSION['badlog'] przyjmie wartość 2, jeżeli hasło i login się nie zgadzają $_SESSION['badlog']=0

  1. <?php
  2. $_SESSION['badlog'] = 0;
  3.  
  4. //dla uproszczenia nadałem przykładowe wartości, jednak $uzytkownik i $haslo
  5. //wczytane beda z pliku lub bazy
  6. $uzytkownik = 'test';
  7. $haslo = 'test';
  8.  
  9.  if ($_POST['LOG'] == $uzytkownik && $_POST['PASS'] == $haslo)
  10.  {
  11. $_SESSION['badlog'] = 2;
  12. include 'parent.php'; //automatyczne przejście do trzecie pliku
  13.  } else {
  14. echo 'zly login lub haslo';
  15.  }
  16. ?>



PLIK 3) Właściwy plik parent.php, którego zawartość dostępna jest tylko po poprawnym zalogowaniu:

  1. <?
  2. if ($_SESSION['badlog'] != 2 && empty($_SESSION['badlog']) )
  3.  { echo 'Brak dostepu do strony'; }
  4. else { echo 'Bardzo cenna zawartosc';}
  5. ?>



1. Prosze o komentarz, uwagi krytyczne ewentualnie alternatywne rozwiązania co do sposobu przedstawionego powyżej sposobu logowania, czy coś jeszcze muszę uwzględnić. Jest to dla mnie bardzo ważne - szczególnie z punktu widzenia bezpieczeństwa oraz optymalizacji.

2. Chciałbym aby logowanie odbywało się w sposób bezpieczny, poprzez protokół SSL, dlatego chciałbym zapytać Czy muszę coś uwzględnić/zmienić w kodzie php jeżeli chce zrobić logowanie przez https, czy wszystko odbywa się na poziomie serwera ?

3. Czy istnieją jakieś darmowe konta, które udostepniają php z obsługą protokołu SSL (MySQL to miły dodatek)

Z góry bardzo dziękuje za wszelkie konstruktywne odpowiedzi i opinie
skowron-line
nie lepiej zamiast
  1. <?php
  2. $_SESSION['badlog'] = 0;
  3. ?>

nie dawac wartosci poczatkowej albo dac pusta to nie bedziesz musial sprawdzac tak


  1. <?php
  2. if ($_SESSION['badlog'] != 2 && empty($_SESSION['badlog']) )
  3. ?>

tylko tak
  1. <?php
  2. if (isset($_SESSION['badlog'] )
  3. ?>


ale to jak wolisz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.