Zacznę więc od budowy bazy danych
user_id, user_name, status
Następnie plik " Login.php "
if(!$_SESSION['logged']) { // jeśli zostanie naciśnięty przycisk "Zaloguj" // filtrujemy dane... $_POST['name'] = clear($_POST['name']); $_POST['password'] = clear($_POST['password']); // i kodujemy hasło $_POST['password'] = codepass($_POST['password']); // sprawdzamy prostym zapytaniem sql czy podane dane są prawidłowe $result = mysql_query("SELECT `user_id` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1"); if ($row['status']!= "0"){ // jeśli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera $_SESSION['logged'] = true; $_SESSION['user_id'] = $row['user_id']; $_SESSION['admin'] = true; echo '<p style="font-size:16px;text-decoration:none;color:white;">Zostałeś poprawnie zalogowany! Możesz teraz przejść na <a href="index.php" style="font-size:22px;text-decoration:none;color:red;">stronę główną</a>.</p>'; }elseif ($row['status']== "0"){ $_SESSION['logged'] = true; $_SESSION['user_id'] = $row ['user_id']; $_SESSION['admin'] = false; } } else { } }
oraz plik " config.php "
function db_connect() { } function db_close() { } function clear($text) { // jeśli serwer automatycznie dodaje slashe to je usuwamy } $text = mysql_real_escape_string($text); // filtrujemy tekst aby zabezpieczyć się przed sql injection return $text; } function codepass($password) { // kodujemy hasło (losowe znaki można zmienić lub całkowicie usunąć } // funkcja na sprawdzanie czy user jest zalogowany, jeśli nie to wyświetlamy komunikat function check_login() { if(!$_SESSION['logged']) { <p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>'); } } function check_admin() { if(!$_SESSION['admin']) { <p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>'); } } // funkcja na pobranie danych usera function get_user_data($user_id = -1) { // jeśli nie podamy id usera to podstawiamy id aktualnie zalogowanego if($user_id == -1) { $user_id = $_SESSION['user_id']; } return false; } } // startujemy sesje // jeśli nie ma jeszcze sesji "logged" i "user_id" to wypełniamy je domyślnymi danymi $_SESSION['logged'] = false; $_SESSION['user_id'] = -1; }
w pliku "index.php " w katalogu admina
includuje ten config oraz używam funkcji " check_admin() "
Oczywiście bez problemowo mogę się zalogować z dwóch kont. user1 ze statusem=1 oraz user2 ze statusem =0.
Już nawet po zapytaniu do bazy i pobraniu ['status'] robiłem ify.
Nie wiem albo jestem już przemęczony siedząc przy budowie całej strony i nie mogę tego opanować, albo brak dostarczającej wiedzy.
Prosiłbym więc o jakąś podpowiedź.