Zrobiłem prosty system logowania w PHP (z użyciem sesji):
Trzy pliki:
- parentindex.htm - formularz HTML logowania
- 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
- 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:
<FORM ACTION="parentlog.php" METHOD="POST">
Login:<INPUT TYPE="TEXT" NAME="LOG">
Password:<INPUT TYPE="password" NAME="PASS">
<INPUT TYPE="submit" VALUE="Zaloguj""
</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
<?PHP
session_start();
$_SESSION['badlog'] = 0;
//dla uproszczenia nadałem przykładowe wartości, jednak $uzytkownik i $haslo
//wczytane beda z pliku lub bazy
$uzytkownik = 'test';
$haslo = 'test';
if ($_POST['LOG'] == $uzytkownik && $_POST['PASS'] == $haslo)
{
$_SESSION['badlog'] = 2;
include 'parent.php'; //automatyczne przejście do trzecie pliku
} else {
echo 'zly login lub haslo';
}
?>
PLIK 3) Właściwy plik parent.php, którego zawartość dostępona jest tylko po poprawnym zalogowaniu:
<?
session_start();
if ($_SESSION['badlog'] != 2 && empty($_SESSION['badlog']) )
{ echo 'Brak dostepu do strony'; }
else { echo 'Bardzo cenna zawartosc';}
?>
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.
-
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 ?
-
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