Witam otóż mam problem ze stworzeniem logowania dla admina i usera
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"
if(isset($_POST['name'])) { // 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;
echo 'Zostałeś zalogowane jako user przejdź do strony głównej <a href="index.php">Tutaj</a>'; }
} else {
echo '<p>Podany login i/lub hasło jest nieprawidłowe.</p>'; }
}
oraz plik " config.php "
function db_connect() {
mysql_connect(DBHOST
, DBUSER
, DBPASS
) or
die('<h2>ERROR</h2> MySQL Server is not responding'); }
function db_close() {
}
function clear($text) {
// jeśli serwer automatycznie dodaje slashe to je usuwamy
}
$text = trim($text); // usuwamy białe znaki na początku i na końcu return $text;
}
function codepass($password) {
// kodujemy hasło (losowe znaki można zmienić lub całkowicie usunąć
return sha1
(md5($password).'#!%Rgd64'); }
// funkcja na sprawdzanie czy user jest zalogowany, jeśli nie to wyświetlamy komunikat
function check_login() {
if(!$_SESSION['logged']) {
die('<p>To jest strefa tylko dla użytkowników.</p> <p>[<a href="login.php">Logowanie</a>] [<a href="register.php">Zarejestruj się</a>]</p>');
}
}
function check_admin() {
if(!$_SESSION['admin']) {
die('<p>To jest strefa tylko dla użytkowników.</p> <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'];
}
$result = mysql_query("SELECT * FROM `users` WHERE `user_id` = '{$user_id}' LIMIT 1"); return false;
}
}
// startujemy sesje
// jeśli nie ma jeszcze sesji "logged" i "user_id" to wypełniamy je domyślnymi danymi
if(!isset($_SESSION['logged'])) { $_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ź.