Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] logowanie
Forum PHP.pl > Forum > Przedszkole
zero-gravity
Witam

Jak zrobić, że jak ban = 1, to nie można się zalogować i kokunikat wyskakuje, że konto jest zbanowane? ZRobiłem taki kod:

  1. // sprawdzamy czy user nie jest przypadkiem zalogowany
  2. if(!$_SESSION['logged']) {
  3. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  4. if(isset($_POST['name'])) {
  5. // filtrujemy dane...
  6. $_POST['name'] = clear($_POST['name']);
  7. $_POST['password'] = clear($_POST['password']);
  8. // i kodujemy hasło
  9. $_POST['password'] = codepass($_POST['password']);
  10.  
  11. // sprawdzamy prostym zapytaniem sql czy podane dane są prawidłowe
  12. $result = mysql_query("SELECT `user_id` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1");
  13. if(mysql_num_rows($result) > 0) {
  14. // jeśli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera
  15. $row = mysql_fetch_assoc($result);
  16. $_SESSION['logged'] = true;
  17. $_SESSION['user_id'] = $row['user_id'];
  18. echo '<p><div id="success">Zostałeś poprawnie zalogowany! </div></p> <META HTTP-EQUIV="Refresh" CONTENT="1;URL=index.php">';
  19. } else {
  20. echo '<p><div id="warning">Podany login i/lub hasło jest nieprawidłowe.</div></p>';
  21. }
  22. }
nospor
Oprocz user_id pobieraj tez ban
Potem tylko prosty IF i po sprawie
zero-gravity
Cytat(nospor @ 20.05.2014, 14:47:33 ) *
Oprocz user_id pobieraj tez ban
Potem tylko prosty IF i po sprawie


Nie wiem za bardzo jak nerdsmiley.png
nospor
Wiesz jak wstawiac durne emotki, ale zeby chwilke zajrzec do manuala i podszkolic sie w podstawach tego co robisz, to juz nie wiesz jak....

masz pobrac rekord z zapytania - mysql_fetch_array() lub mysql_fetch_assoc()
a potem sprawdzic, czy wartosc BAN jest rowna 1 czy nie - prosty IF

edit: zresztą rekord juz pobierasz o tu:
$row = mysql_fetch_assoc($result);
wiec pozostal ci juz banalny IF.... Wloz w to odrobine wlasnej pracy
zero-gravity
Cytat(nospor @ 20.05.2014, 15:04:36 ) *
Wiesz jak wstawiac durne emotki, ale zeby chwilke zajrzec do manuala i podszkolic sie w podstawach tego co robisz, to juz nie wiesz jak....

masz pobrac rekord z zapytania - mysql_fetch_array() lub mysql_fetch_assoc()
a potem sprawdzic, czy wartosc BAN jest rowna 1 czy nie - prosty IF

edit: zresztą rekord juz pobierasz o tu:
$row = mysql_fetch_assoc($result);
wiec pozostal ci juz banalny IF.... Wloz w to odrobine wlasnej pracy


Robię

if($row['ranga'] == 1){

i nic..
nospor
a dodales pola ranga do pobierania z zapytania jak napisalem w pierwszym poscie?
Cytat
Oprocz user_id pobieraj tez ban
zero-gravity
tak.
nospor
Pokaz caly kod po zmianach
zero-gravity
Cytat(nospor @ 20.05.2014, 15:22:43 ) *
Pokaz caly kod po zmianach



  1. // sprawdzamy czy user nie jest przypadkiem zalogowany
  2. if(!$_SESSION['logged']) {
  3. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  4. if(isset($_POST['name'])) {
  5. // filtrujemy dane...
  6. $_POST['name'] = clear($_POST['name']);
  7. $_POST['password'] = clear($_POST['password']);
  8. // i kodujemy hasło
  9. $_POST['password'] = codepass($_POST['password']);
  10.  
  11. // sprawdzamy prostym zapytaniem sql czy podane dane są prawidłowe
  12. $result = mysql_query("SELECT `user_id`, `ranga` FROM `users` WHERE `user_name` = '{$_POST['name']}' AND `user_password` = '{$_POST['password']}' LIMIT 1");
  13. if(mysql_num_rows($result) > 0) {
  14. // jeśli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera
  15. $row = mysql_fetch_assoc($result);
  16. if($row['ranga'] == 1){
  17. echo 'test';
  18. } else {
  19. $_SESSION['logged'] = true;
  20. $_SESSION['user_id'] = $row['user_id'];
  21. }
  22. echo '<p><div id="success">Zostałeś poprawnie zalogowany! </div></p> <META HTTP-EQUIV="Refresh" CONTENT="1;URL=index.php">';
  23. } else {
  24. echo '<p><div id="warning">Podany login i/lub hasło jest nieprawidłowe.</div></p>';
  25. }
  26. }
nospor
No i git.... widac twoj user nie jest zbanowany, nieprawdaz?

zrob sobie
$row = mysql_fetch_assoc($result);
print_r($row);

a sam zobaczysz smile.gif

ps: ale ten komunikat
echo '<p><div id="success">Zostałeś poprawnie zalogowany! </div></p> <META HTTP-EQUIV="Refresh" CONTENT="1;URL=index.php">';
to ma byc w ELSE, a nie bezwarunkowo jak masz teraz.... no mysl troszke.
zero-gravity
Dobra działą. Mały błąd miałem w bazie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.