Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> logowanie admin user
login90
post 7.06.2020, 18:36:11
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 8.02.2016

Ostrzeżenie: (0%)
-----


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. }


Ten post edytował login90 7.06.2020, 19:09:54
Go to the top of the page
+Quote Post
gino
post 7.06.2020, 19:16:12
Post #2





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
StreetFighter
post 13.06.2020, 19:28:16
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 17.04.2017
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
gitbejbe
post 13.06.2020, 20:48:51
Post #4





Grupa: Zarejestrowani
Postów: 515
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


programowanie obiektowe to styl życia, nie da się tego od tak zrozumieć ; )
Go to the top of the page
+Quote Post
StreetFighter
post 13.06.2020, 22:09:51
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 17.04.2017
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 07:11