Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ile osób jest aktualnie na stronie
Forum PHP.pl > Forum > PHP
integer000
Jak zrobić coś takiego aby na stronie pisało ile jest aktualnie osób online questionmark.gif
krzysiekk
jesli masz dostep do bazy danych to ...:

CREATE TABLE STATS(
TIME INTEGER
)
UTWORZ TABELE W BAZIE


<?php
/*Skrypt pochodzi z książki "php. 101 praktycznych skryptów"
autor: Marcin Lis e-mail: 101scripts@marcinlis.com*/
$timeout = 60;

if(!$link = mysql_connect("localhost", "test", "test")){
echo("Problem z połączeniem z bazą danych.");
return;
}
if(!mysql_select_db("test")){
echo("Problem z połączeniem z bazą danych.");
mysql_close($link);
return;
}

$time = time();
$query = "INSERT INTO STATS2 (TIME) VALUES($time)";

if(!$result = mysql_query($query)){
echo("Problem z bazą danych: odrzucone zapytanie");
mysql_close($link);
exit;
}

$val = $time - $timeout;
$query = "DELETE FROM STATS2 WHERE TIME < '$val'";

if(!$result = mysql_query($query)){
echo("Problem z bazą danych: odrzucone zapytanie");
mysql_close($link);
exit;
}

$query = "SELECT COUNT(*) FROM STATS2";

if(!$result = mysql_query($query)){
echo("Problem z bazą danych: odrzucone zapytanie");
mysql_close($link);
exit;
}

$row = mysql_fetch_row($result);
if(!$row){
echo("Problem z bazą danych: nieprawidłowy wynik zapytania");
mysql_close($link);
exit;
}
mysql_close($link);

$count = $row[0];

if($count == 1){
echo("Ta strona jest przeglądana przez 1 użytkownika.");
}
else{
echo("Ta strona jest przeglądana przez $count użytkowników.");
}
?>


TO COS ZLICZA WSZYSTKIE ODWOLANIA

TO NIE JEST MOJE TYLKO Z KSIAZKI

POZDRAWIAM
integer000
A da się bez SQL questionmark.gif
hwao
Da biggrin.gif

pisze z glowy calosc

  1. <?php
  2. function online( $ip ) {
  3. $a = unserialize( file_get_contents( './online.txt' ) );
  4.  
  5. $new = true;
  6. foreach( $a As $k => $v ) {
  7.  if( $v['ip'] == $ip ) {
  8.  // te ip jest, dodajemy time :)
  9.  $v['time'] = time();
  10.  $new = false;
  11.  }
  12.  
  13.  if( $v['time']+60 < time() ) {
  14. // sprawdzanie czy czasem ktos juz nie jest starym smieciem :)
  15. unset( $a[$k] );
  16.  }
  17. }
  18.  
  19.  
  20. if( $new == true ) {
  21.  $a[] = array( 'ip' => $ip, 'time' => time() );
  22. }
  23.  
  24. file_put_contents( './online.txt', serialize( $a ) );
  25.  
  26. return count( $a );
  27. }
  28.  
  29. var_dump( online( $_SERVER['RENOTE_ADDR'] ) );
  30. ?>


Nie gwarantuje ze to dziala dobrze:P calosc z glowy... najwyzej popraw


Napisz czy dziala/nie dziala
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.