Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]użytkownicy online - sesje
Forum PHP.pl > Forum > Przedszkole
zyluss
Witam. Problem mój polega na tym że podczas gdy użytkownik jest online dodaje go do bazy lecz jeżeli zaloguje się ktoś inny to automatycznie podmienia go na tego nowszego jednym słowem widnieje w bazie tylko jeden rekord a jest zalogowanych np. 3 użytkowników.

  1. <?php
  2.  
  3. include('dane2.php');
  4.  
  5.  
  6.  
  7. $time_now_uo = time();
  8. echo '';
  9. $old_time_uo = time()-2;
  10.  
  11. if (isset ($_SESSION['logowanie'])) {
  12.  
  13. $sql_check_un = "SELECT dj FROM dj_online WHERE dj='" . $_SESSION['logowanie'] . "'";
  14. $cun = mysqli_query($connection, $sql_check_un);
  15. $check_un = mysqli_fetch_array($cun);
  16.  
  17. echo $_SESSION['logowanie'] . '<br />';
  18.  
  19. if($check_un['username'] == $_SESSION['logowanie']) {
  20. $sql_uo_u = "UPDATE dj_online SET time='$time_now_uo' WHERE dj='" . $_SESSION['logowanie'] . "'";
  21.  
  22. mysqli_query($connection, $sql_uo_u);
  23. } else {
  24. $sql_uo_a = "INSERT INTO dj_online (`dj` ,`time`) VALUES ('" . $_SESSION['logowanie'] . "', '$time_now_uo')";
  25.  
  26. mysqli_query($connection, $sql_uo_a);
  27. }
  28. }
  29.  
  30. $sql_uo_d = "DELETE FROM dj_online WHERE time < '$old_time_uo'";
  31. mysqli_query($connection, $sql_uo_d);
  32.  
  33. $sql_sun = "SELECT dj FROM dj_online ORDER BY dj";
  34. $sun = mysqli_query($connection, $sql_sun);
  35. if (mysqli_num_rows($sun) != 0) {
  36. echo $lang_bloks_bstats_uo . ' ';
  37. while($user_name = mysqli_fetch_array($sun)) {
  38. echo $user_name['username'] . ' ';
  39. }
  40. } else {
  41. echo $lang_bloks_bstats_nuo;
  42. }
  43.  
  44.  
  45. ?>


Dziękuje z góry za pomoc. Pozdrawiam
erix
  1. $_SESSION['logowanie']

Co to jest?
zyluss
Cytat(erix @ 18.01.2011, 20:23:29 ) *
  1. $_SESSION['logowanie']

Co to jest?


Jest to sesja gdzie logują się użytkownicy :

  1. if(!isset($_SESSION['logowanie']))
  2. {
  3. $_SESSION['logowanie'] = 'logout';
  4. }
sadistic_son
No właśnie... jeśli nie jest ustawiona (nie istnieje) sesja 'logowanie' - utwórz ją z wartością 'logout'. A tak właściwie to co to jest ta sesja. Gdzie/kiedy ją tworzysz i co ma na celu?
zyluss
Sesje normalnie działają tak jak powinny a "logout" działa jeżeli użytkownik panelu nie jest zalogowany to wtedy wyświetla mu echo "nie jesteś zalogowany..." a jeżeli się zaloguje to normalnie otwiera mu sesje w której znajduję się panel zarządzania stroną.

tzn. :

  1. if(( $_SESSION['logowanie'] == 'logout') || ( $_SESSION['logowanie'] == 'logout2')) echo'<tr><td><font class="info"><center><b><font style="color: red">[x]</font> Musisz być zalogowanym , aby korzystać z panelu</b></center></font></td></tr>';
  2. if(( $_SESSION['logowanie'] != 'logout') &&( $_SESSION['logowanie'] != 'logout2')) { echo'


i po echo jest treść panelu dla osoby zalogowanej. Czy w sesji może tkwić problem?

erix
Cytat
Jest to sesja gdzie logują się użytkownicy :

Nie w sesji, tylko jej wartości - jeśli dla każdego użytkownika klucz z tablicy jest ten sam, to nie dziw się, że źle liczy. Wrzuć tam ID użyszkodnika i powinno dobrze liczyć.
zyluss
Jak byś mógł mnie delikatnie nakierować bo do końca nie rozumiem gdzie te ID ma się znaleźć. Z góry dziękuje pozdrawiam
Ulysess
lepiej dodatkowo dodaj jeszcze 1 zmienna np $_SESSION['id_user'] = id użytkownika z bazy.
to oczywiście zrób przy logwaniu

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.