Użytkownik = 0 | Brak dostępu do Panelu Administratora
Administrator = 1 | Dostęp do Panelu Administratora
Kod:
db.php
<?php /*Połączenie z bazą danych*/ $dbhost = 'localhost'; $dblogin = 'root'; $dbpass = ''; $dbselect = 'login'; ?>
hide.php
require_once('db.php'); ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="css/style.css" rel="stylesheet" type="text/css" /> <title>Skrypt logowania z wykorzystaniem PHP i bazy MySQL</title> <meta name="description" content="Kurs jQuery" /> <meta name="keywords" content="kurs, jquery, mlaskowski.pl" /> </head> <body> <?php if ($_SESSION['auth'] == TRUE) { } else { echo '<p style="padding-top:10px;color:white";><strong>Próba nieautoryzowanego dostępu...</strong><br />trwa przenoszenie do formularza logowania</p>'; } ?> </body> </html>
index.php
require_once('db.php'); ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="css/style.css" rel="stylesheet" type="text/css" /> <title>Skrypt logowania z wykorzystaniem PHP i bazy MySQL</title> <meta name="description" content="Kurs jQuery" /> <meta name="keywords" content="kurs, jquery, mlaskowski.pl" /> </head> <body> <?php /* jeżeli nie wypełniono formularza - to znaczy nie istnieje zmienna login, hasło i sesja auth * to wyświetl formularz logowania */ ?> <form name="form-logowanie" action="index.php" method="post"> Login: <input type="text" name="login" /><br /> Hasło: <input type="password" name="password" /> <input type="submit" name="zaloguj" value="Zaloguj" /> </form> <?php } /* jeżeli istnieje zmienna login oraz password i sesja z autoryzacją użytkownika jest FALSE to wykonaj * skrypt logowania */ // jeżeli pole z loginem i hasłem nie jest puste // dodaje znaki unikowe dla potrzeb poleceń SQL // szyfruję wpisane hasło za pomocą funkcji md5() /* zapytanie do bazy danych * mysql_num_rows - sprawdzam ile wierszy odpowiada zapytaniu mysql_query * mysql_query - pobierz wszystkie dane z tabeli user gdzie login i hasło odpowiadają wpisanym danym */ $sql = mysql_num_rows(mysql_query("SELECT * FROM `user` WHERE `login` = '$login' AND `password` = '$password'")); // jeżeli powyższe zapytanie zwraca 1, to znaczy, że dane zostały wpisane poprawnie i rejestruję sesję if ($sql == 1) { // zmienne sesysje user (z loginem zalogowanego użytkownika) oraz sesja autoryzacyjna ustawiona na TRUE $_SESSION['user'] = $login; $_SESSION['auth'] = TRUE; // przekierwuję użytkownika na stronę z ukrytymi informacjami echo '<p style="padding-top:10px";><strong>Proszę czekać...</strong><br />trwa logowanie i wczytywanie danych</p>'; } // jeżeli zapytanie nie zwróci 1, to wyświetlam komunikat o błędzie podczas logowania else { } } // jeżeli pole login lub hasło nie zostało uzupełnione wyświetlam błąd else { } } // jeżeli sesja auth jest TRUE to przekieruj na ukrytą podstronę echo '<p style="padding-top:10px"><strong>Proszę czekać...</strong><br />trwa wczytywanie danych</p>'; } // wyloguj się $_SESSION['user'] = ''; $_SESSION['auth'] = FALSE; } ?> </body> </html>
Struktura MySQL
CREATE TABLE IF NOT EXISTS `users` ( `id_user` smallint(6) NOT NULL AUTO_INCREMENT, `login` varchar(128) COLLATE utf8_polish_ci NOT NULL, `password` varchar(128) COLLATE utf8_polish_ci NOT NULL, PRIMARY KEY (`id_user`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2 ; INSERT INTO `users` (`id_user`, `login`, `password`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3');