Witam, chciałbym zrobić system rang, który byłby oparty o MySQL. Chodzi mi o takie coś:
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) {
echo 'UKRYTA TREŚĆ!<br />'; echo '<a href="index.php?logout">Wyloguj się</a>'; }
else {
echo '<meta http-equiv="refresh" content="1; URL=index.php">'; 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
*/
if (!isset($_POST['login']) && !isset($_POST['password']) && $_SESSION['auth'] == FALSE) { ?>
<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
*/
elseif (isset($_POST['login']) && isset($_POST['password']) && $_SESSION['auth'] == FALSE) {
// jeżeli pole z loginem i hasłem nie jest puste
if (!empty($_POST['login']) && !empty($_POST['password'])) {
// dodaje znaki unikowe dla potrzeb poleceń SQL
// szyfruję wpisane hasło za pomocą funkcji md5()
$password = md5($password);
/* 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
*/
// 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 '<meta http-equiv="refresh" content="1; URL=hide.php">'; 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 {
echo '<p style="padding-top:10px;color:red";>Błąd podczas logowania do systemu<br />'; echo '<a href="index.php">Wróć do formularza</a></p>'; }
}
// jeżeli pole login lub hasło nie zostało uzupełnione wyświetlam błąd
else {
echo '<p style="padding-top:10px;color:red";>Błąd podczas logowania do systemu<br />'; echo '<a href="index.php">Wróć do formularza</a></p>'; }
}
// jeżeli sesja auth jest TRUE to przekieruj na ukrytą podstronę
elseif ($_SESSION['auth'] == TRUE && !isset($_GET['logout'])) { echo '<meta http-equiv="refresh" content="1; URL=hide.php">'; echo '<p style="padding-top:10px"><strong>Proszę czekać...</strong><br />trwa wczytywanie danych</p>'; }
// wyloguj się
elseif ($_SESSION['auth'] == TRUE && isset($_GET['logout'])) { $_SESSION['user'] = '';
$_SESSION['auth'] = FALSE;
echo '<meta http-equiv="refresh" content="1; URL=index.php">'; echo '<p style="padding-top:10px"><strong>Proszę czekać...</strong><br />trwa wylogowywanie</p>'; }
?>
</body>
</html>
Struktura MySQLCREATE 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');