Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Komunikat przy zalogowanym drugim uzytkowniku
rad11
post
Post #1





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Chcialbym sie was poradzic jak rozwiazac problem takiego typu ze mam logowanie na jedno konto moze sie zalogowac wielu uzytkownikow w tej chwili chce to ograniczyc do tego aby jesli uzytkownik jest juz zalogowany to logujacemu nowemu uzytkownikowi wyskakiwal komunikat ze juz ktos jest zlaogowany na tym koncie , a temu co jest zalogowany komunikat ze ktos probuje sie zalogowac. Jakies pomysly jak taki problem rozwiazac?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Mam taki kod (nie moj) w ktorym musze wcisnac warunek aby blokowac innego uzytkownika ktory probuje sie zalogowac:

login
  1. function login($showform = true, $redir = '/monitor') {
  2. global $_aa, $_prefix, $lg;
  3. $_aa['logged_in'] = false;
  4. // If login data present, check the key
  5. if (isset($_COOKIE['aausr'])) {
  6. $id = @intval($_COOKIE['aausr']);
  7.  
  8. if ("$id" == $_COOKIE['aausr']) {
  9.  
  10. $row = mysql_fetch_assoc(make_user_query('try_db_query', "SELECT * FROM <TABLE_USER> WHERE `id`='$id' LIMIT 1"));
  11. //print_r($row);
  12. if (is_array($row) && ($row['key'] == $_COOKIE['aakey'])) {
  13. if ($row['license_id'] > 0) {
  14. $_aa['logged_in'] = ($row['key'] == make_user_query('db_getv', "SELECT * FROM <TABLE_USER> WHERE `id`='" . ($row['license_id']) . "' LIMIT 1"));
  15. } else
  16. $_aa['logged_in'] = true;
  17.  
  18. if ($_aa['logged_in']) {
  19. $_aa = array_merge($_aa, $row);
  20. $security->setLogged($row);
  21. }
  22. }
  23. }
  24. }
  25. // If not logged in, display form
  26. if (!$_aa['logged_in']) {
  27.  
  28. if ($_POST['s'] == 'login') {
  29. $_POST['login'] = trim($_POST['login']);
  30. $_POST['pass'] = trim($_POST['pass']);
  31. //echo "CHeck";
  32. $res = loginCheck($_POST);
  33. //print_r($res);
  34.  
  35. if ($res['ok'] == 1) {
  36.  
  37. if ($res['active'] != 3) {
  38. setcookie('aausr', $res['id'], 0, '/');
  39. setcookie('aakey', $res['key'], 0, '/');
  40.  
  41. if (!$_COOKIE['pcid']) {
  42. srand(time());
  43. $_COOKIE['pcid'] = md5('dasdas' . rand());
  44. setcookie('pcid', $_COOKIE['pcid'], time() + 1500 * 24 * 3600, '/');
  45. }
  46. $security->setLogged($res['row']);
  47. }
  48.  
  49. $_aa['logged_in'] = true;
  50. unset($res['ok']);
  51. unset($res['row']);
  52. $_aa = array_merge($_aa, $res);
  53.  
  54. // Update last and current visit times, to enable tracking of new and old results
  55. make_user_query('try_db_query', $sql = "UPDATE <TABLE_USER> SET `last_visit`='{$_aa['curr_visit']}', `curr_visit`='" . time() . "' WHERE `id`='{$_aa['id']}'");
  56.  
  57. if ($_aa['license_id'] > 0)
  58. make_user_query('try_db_query', $sql = "UPDATE <TABLE_USER> SET `key`='" . $res['key'] . "' WHERE `id`='{$_aa['license_id']}'");
  59.  
  60. make_user_query('try_db_query', "INSERT INTO <TABLE_EVENTS> VALUES ('',
  61. '{$_aa['id']}',
  62. NOW(),
  63. 'login',
  64. '" . addslashes($_SERVER['REMOTE_ADDR']) . "',
  65. '" . addslashes($_COOKIE['pcid']) . "')");
  66.  
  67. $_aa['last_visit'] = $_aa['curr_visit'];
  68.  
  69. }
  70. } else
  71. $res = array();
  72.  
  73.  
  74. }
  75.  
  76. if ($_aa['logged_in'] && strlen($redir) > 0) {
  77. header('Location: ' . $redir);
  78. die();
  79. } else
  80. return true;
  81.  
  82.  
  83. }


logout

  1. function logout($logged_in) {
  2.  
  3. global $lg, $_aa;
  4.  
  5. // if ($logged_in == true) {
  6. // die();
  7. // } else {
  8. if (setcookie('aausr', '0', time() - 24 * 3600, '/') && setcookie('aakey', '')) {
  9.  
  10. $_aa['logged_in'] = false;
  11. unset($_COOKIE['aausr']);
  12. $security->setAuthenticated(false);
  13. $security->clear();
  14. header("Location: /");
  15. die();
  16.  
  17. containerStart(true);
  18.  
  19. return message($lg['logged_out'], $lg['logged_out_explain']);
  20. }
  21. // }
  22. }


Niby w bazie jest trzymany last visit current visit ale jak zablokowac na tej podstawie probe logowania innego uzytkownika hmmm?

Ten post edytował rad11 23.03.2015, 12:09:17
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 09:12