Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie admin user
Forum PHP.pl > Forum > PHP
login90
Witajcie
Mam taki kod. Wiecie może jak zrobić aby było rozgraniecznie logowanie admin/user. Mam w bazie danych type admin user Dzięki
  1. class Account {
  2.  
  3. private $db;
  4.  
  5. public function __construct() {
  6. $conn = new Db();
  7. $this->db = $conn->db();
  8. }
  9.  
  10. public function login($username, $password) {
  11. $query = $this->db->query("SELECT count('id') as total,username,password from signup WHERE (username = '$username' OR email = '$username') LIMIT 1");
  12.  
  13. while ($current_user = $query->fetch_assoc()) {
  14. if ($current_user['total'] == 1 && $this->varify_pass($password, $current_user['password']) === TRUE) {
  15. $_SESSION['username'] = $current_user['username'];
  16. $_SESSION['logged_in'] = TRUE;
  17. header("Location: dashboard.php");
  18. } else {
  19. echo "Username & Password is Incorrect";
  20. }
  21. }
  22. }
  23.  
  24. public function varify_pass($input_pass, $pass_hash_fromdb) {
  25. if (password_verify($input_pass, $pass_hash_fromdb)) {
  26. return TRUE;
  27. }
  28. }
gino
najpierw odpowiedź na pytanie: można na wiele sposobów.Dodatkowe pole np. status tinyint gdzie 0 to admin, 1 to user itd albo dodatkowa tablica gdzie można zdefiniować user to admin i do czego ma dostęp itd, itp.

Co do kodu: to nie jest programowanie obiektowe, to można zrealizować na zwykłych funkcjach, metody nie są logicznie i metodycznie ze sobą powiązane, proponuję odejść od takiego sposobu uczenia się, że wrzuca się do klasy funkcje i sądzić, że jest ok. Nie oceniam samego kodu ale brak jest obsługi błędów, pod co w zapytaniu LIMIT 1, spodziewasz się wielu userów o tym samym mailu? To niedopuszczalne jak i o tym samym loginie.

gino
StreetFighter
Cytat(gino @ 7.06.2020, 20:16:12 ) *
Co do kodu: to nie jest programowanie obiektowe, to można zrealizować na zwykłych funkcjach


Jako że jestem początkujący, podłącze się do pytania biggrin.gif, mając kolegi kod powyżej, piszesz że nie jest to programowanie obiektowe. Jak można byłoby to wykonać w programowaniu obiektowym?
gitbejbe
programowanie obiektowe to styl życia, nie da się tego od tak zrozumieć ; )
StreetFighter
Wydaje mi się że nie wszystko trzeba pisać obiektowo. Czasami nie ma co na siłę tego robić.
Jeżeli np. klasa ma mieć tylko jedną instancje, nie widzę sensu, może być po prostu zbiorem metod statycznych.
Chyba że dla zachowania spójności danej aplikacji.

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.