Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]system logowania dla trzech użytkowników - jeden online
art998
post 24.10.2018, 09:22:39
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.10.2016

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


Dzień dobry, czy można jakoś dostosować ten skrypt logowania ( lub podsunąć jakiś pomysł ) jak zrobić logowanie do programu aby zalogowany mógł być TYLKO JEDEN użytkownik (pozostali dostają info o braku możliwości zalogowania)
W bazie userów mam tylko trzy osoby i więcej nie będzie.

Próbowałem dodać dodatkowe pole które wskazywało, że jest ktoś już zalogowany ale po zamknięciu przeglądarki ( nie przez opcję wyloguj) wszystko bierze w łeb ;-)
Kombinowałem też z czasem ostatniej aktywności i po określonym czasie automatyczne wylogowanie lecz to rozwiązanie nie za bardzo mogę zastosować.
Zakładam też, że nie można przejąć sesji zalogowanego użytkownika i wylogować go z innego kompa.

Mam jeszcze pytanie czy zadanie crona do wykonania co 10 min bardzo obciąża serwer?

Przykładowy system logowania:
  1. <?php
  2. if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])) )
  3. {
  4. header('Location: index.php');
  5. exit();
  6. }
  7. require_once "connect.php";
  8. $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
  9. if ($polaczenie->connect_errno!=0)
  10. {
  11. echo "Error: ".$polaczenie->connect_errno;
  12. }
  13. else
  14. {
  15. $login = $_POST['login'];
  16. $haslo = $_POST['haslo'];
  17.  
  18. $login = htmlentities($login, ENT_QUOTES, "UTF-8");
  19. $haslo_hash = password_hash($haslo, PASSWORD_DEFAULT);
  20.  
  21. if ($rezultat = @$polaczenie->query(
  22. sprintf("SELECT * FROM log_user WHERE user='%s'",mysqli_real_escape_string($polaczenie,$login))))
  23. {
  24. $ilu_userow = $rezultat->num_rows;
  25. if($ilu_userow>0)
  26. {
  27. $row = $rezultat->fetch_assoc();
  28.  
  29. if (password_verify($haslo, $row['pass']))
  30. {
  31. $_SESSION['zalogowany'] = true;
  32. $_SESSION['id'] = $row['id'];
  33. $_SESSION['user'] = $row['user'];
  34.  
  35. unset($_SESSION['blad']);
  36. $rezultat->free_result();
  37. header('Location: prog/zamowienie.php');
  38. }
  39. else
  40. {
  41. $_SESSION['blad'] = 'Nieprawidłowy login lub hasło !';
  42. header('Location: index.php');
  43. }
  44. }
  45. }
  46. }
  47.  
  48. $polaczenie->close();
  49. ?>
  50.  
  51.  
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 11:44