Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][MySQL] Użytkownicy
-Slasher McKagan-
post
Post #1





Goście







Witam!

Napisałem prosty skrypt. Rejestracja, logowanie uzytkownikow + zmiana ich danych. Teraz chciałem, zrobić blok w ktorym wyświetlać się będzie lista zalogowanych użytkowników. Mysle - żaden problem, przy logowaniu się, do bazy prefix_session dodam dane:

id | nid | nick | data | ip |,


a potem tylko select, przy wylogowywaniu się usuwam te dane, ale nie w tym tkwi mój problem. Co w przypadku gdy użytkownik się nie wyloguje? Oczywiście blok dalej będzie wyświetlał jego dane, więc jak usunąć te dane bez kliknicia w link wyloguj w przypadku gdy użytkowik nie jest aktywny przez np. 15 minut ? Proszę o jakąś podpowiedź (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

Z góry dziękuje
Pozdrawiam
Slasher (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
M45t3r
post
Post #2





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 16.05.2005
Skąd: Lubaczów

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


No wiec ok, zrobilem (prawie) ale zostal jeden blad... gdy gosc odswiezy strone, to dodaje go jeszce raz do bazy, jak temu zapobiec (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) wstawic ciastko

setcookie('jest', ''); i sprawdzac czy jest ? jesli jest to update (ale jak rozroznic goscia (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ) a jak nie ma to insert (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

tutaj kod...

  1. <?php
  2. function session()
  3. {
  4. session_name('sid');
  5. session_register('zalogowany');
  6. $ip = $_SERVER['REMOTE_ADDR'];
  7.  if(isset($_COOKIE['nick']) && isset($_COOKIE['pass']))
  8.  {
  9. $query = "SELECT * FROM `pixarcell_users` WHERE nick ='".$_COOKIE['nick']."'";
  10. $result = mysql_query($query);
  11. while($row = @mysql_fetch_assoc($result))
  12. {
  13. if($row['pass']==$_COOKIE['pass'])
  14. {
  15. $_SESSION['zalogowany']='1';
  16. }
  17. else
  18. {
  19.  $_SESSION['zalogowany']='0';
  20. }
  21. }
  22.  }
  23.  else
  24.  {
  25.  $_SESSION['zalogowany']='0';
  26.  }
  27. //----------------------------------------------------------------------------//
  28. $data = date(Hi);
  29. $dataDoSkasowania = $data-1;
  30. if($_SESSION['zalogowany']=='1')
  31. {
  32.  $query = "SELECT id FROM `pixarcell_users` WHERE nick ='".$_COOKIE['nick']."'";
  33.  $result = mysql_query($query);
  34.  while($row = @mysql_fetch_assoc($result))
  35.  {
  36. $idZalogowanego = $row['id'];
  37.  $sql = mysql_query("SELECT * FROM `pixarcell_session` WHERE nid = ".$row['id']."");
  38.  $czyJestZalogowany = mysql_num_rows($sql);
  39.  if( $czyJestZalogowany=='0')
  40.  {
  41. $query = "INSERT INTO `pixarcell_session` VALUES ('NULL', '".$_SESSION['zalogowany']."', '".$row['id']."', '".$data."', '".$ip."')";
  42. $result = mysql_query($query);
  43. if($result)
  44. {
  45. echo 'Dodany do bazy usera ...';
  46.  
  47. }
  48.  }
  49.  else
  50.  {
  51. $query = "UPDATE `pixarcell_session` SET data = '".$data."' WHERE nid = '".$idZalogowanego."'";
  52. $result = mysql_query($query);
  53. if($result)
  54. {
  55. echo 'Uaktualniono dane';
  56. }
  57.  }
  58.  }
  59. }
  60. else
  61. {
  62. $query = "INSERT INTO `pixarcell_session` VALUES ('NULL', '".$_SESSION['zalogowany']."', '', '".$data."', '".$ip."')";
  63. $result = mysql_query($query);
  64. if($result)
  65. {
  66. echo 'Dodany do bazy goscia...';
  67. }
  68. }
  69. $query = "DELETE FROM `pixarcell_session` WHERE data < '".$dataDoSkasowania."'";
  70. $result = mysql_query($query);
  71. if($result)
  72. {
  73.  echo '<br />wyjebales..';
  74. }
  75. }
  76. function PokazZalogowanych()
  77. {
  78.  $query = "SELECT * FROM `pixarcell_session` WHERE z = '1'";
  79.  $result = mysql_query($query);
  80.  while($row = @mysql_fetch_assoc($result))
  81.  {
  82.  $zalogowanychUserow = mysql_num_rows($result);
  83.  }
  84.  echo 'Zalogowanych użytkowników '. $zalogowanychUserow;
  85.  //-----------------------------------------------------------------//
  86.  $query = "SELECT * FROM `pixarcell_session` WHERE z = '0'";
  87.  $result = mysql_query($query);
  88.  while($row = @mysql_fetch_assoc($result))
  89.  {
  90.  $anonimowychUzytkownikow = mysql_num_rows($result);
  91.  }
  92.  echo '<br />Gości '. $anonimowychUzytkownikow;
  93.  
  94. }
  95. ?>
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: 27.12.2025 - 13:30