The_Lozer Skrevet 20. desember 2006 Skrevet 20. desember 2006 hei, jeg lurer på om noen her har et script for å vise hvor mange som er på siden akkuratt nå? eller ble det veldig dårlig formulert.
Ståle Skrevet 20. desember 2006 Skrevet 20. desember 2006 (endret) <?php // // USERS ONLINE // $timer = 2; $filename = "data/online.txt"; if (!$datei) $datei = dirname(__FILE__)."/$filename"; $time = @time(); $ip = $REMOTE_ADDR; $string = "$ip|$time\n"; $a = fopen("$filename", "a+"); fputs($a, $string); fclose($a); $timeout = time()-(60*$timer); $all = ""; $i = 0; $datei = file($filename); for ($num = 0; $num < count($datei); $num++) { $pieces = explode("|",$datei[$num]); if ($pieces[1] > $timeout) { $all .= $pieces[0]; $all .= ","; } $i++; } $all = substr($all,0,strlen($all)-1); $arraypieces = explode(",",$all); $useronline = count(array_flip(array_flip($arraypieces))); if ($useronline == 0) { $useronline = 1; } echo "$useronline"; $dell = ""; for ($numm = 0; $numm < count($datei); $numm++) { $tiles = explode("|",$datei[$numm]); if ($tiles[1] > $timeout) { $dell .= "$tiles[0]|$tiles[1]"; } } if (!$datei) $datei = dirname(__FILE__)."/$filename"; $time = @time(); $ip = $REMOTE_ADDR; $string = "$dell"; $a = fopen("$filename", "w+"); fputs($a, $string); fclose($a); ?> Endret 20. desember 2006 av Stale2k
The_Lozer Skrevet 20. desember 2006 Forfatter Skrevet 20. desember 2006 Takk, men jeg fikk den maks opp i et tall som var 1, selv ikke med to pc'er telte den 2 hva er feil? <?php // // USERS ONLINE // $timer = 2; $filename = "data/online.txt"; if (!$datei) $datei = dirname(__FILE__)."/$filename"; $time = @time(); $ip = $REMOTE_ADDR; $string = "$ip|$time\n"; $a = fopen("$filename", "a+"); fputs($a, $string); fclose($a); $timeout = time()-(60*$timer); $all = ""; $i = 0; $datei = file($filename); for ($num = 0; $num < count($datei); $num++) { $pieces = explode("|",$datei[$num]); if ($pieces[1] > $timeout) { $all .= $pieces[0]; $all .= ","; } $i++; } $all = substr($all,0,strlen($all)-1); $arraypieces = explode(",",$all); $useronline = count(array_flip(array_flip($arraypieces))); if ($useronline == 0) { $useronline = 1; } echo "$useronline"; $dell = ""; for ($numm = 0; $numm < count($datei); $numm++) { $tiles = explode("|",$datei[$numm]); if ($tiles[1] > $timeout) { $dell .= "$tiles[0]|$tiles[1]"; } } if (!$datei) $datei = dirname(__FILE__)."/$filename"; $time = @time(); $ip = $REMOTE_ADDR; $string = "$dell"; $a = fopen("$filename", "w+"); fputs($a, $string); fclose($a); ?>
Ståle Skrevet 20. desember 2006 Skrevet 20. desember 2006 Hvilke to PCer? Den teller per IP. Vel og merke ekstern IP (http://myip.dk) Så hvis du prvøde med to av dine PCer så med mindre du har forskjellige IPer på alle maskinene dine, så telles det som en.
The_Lozer Skrevet 20. desember 2006 Forfatter Skrevet 20. desember 2006 jeg testa på lokalt nettverk med apache web server
Joakim Gjerde Skrevet 21. desember 2006 Skrevet 21. desember 2006 Da funker den ikke! Det gjelder kun eksterne ipadresser, og på lokalt nettverk har begge pcene samme eksterne ipadresse, derfor telles det bare som 1.
oxodesign Skrevet 23. desember 2006 Skrevet 23. desember 2006 Her har du en script som gjør det, husk at scriptet skal ha skriverettigheter for filen "online.odt". cl_online.php
The_Lozer Skrevet 24. desember 2006 Forfatter Skrevet 24. desember 2006 (endret) Her har du en script som gjør det, husk at scriptet skal ha skriverettigheter for filen "online.odt". 7565386[/snapback] Takker dette er faktiskt det eneste som har virket så langt på lokalt men når jeg lasta det opp på min "supre" start server fikk jeg feilmeldingen: Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/a/al/alemoh/public_html/hmm/online.php on line 14 hva er galt.. line 14 inneholder public $pers_online; resten er <?php /** * @name Brukere online * @Desc Sjekker brukere online * @param $filename, $time * @copyright OXODesign TEAM * @author OXODesign * Web: http://www.oxo-design.net * @version 1.0 */ class cl_online { public $pers_online; private $filename = "online.odt"; private $time = 1; # Sett periode i minutter /** * @name func_update_file * Oppdaterer fila med ny ip adresse og klokkeslett */ function func_update_file(){ $get_ip = $_SERVER['REMOTE_ADDR']; $time_now = time(); $input_str = $get_ip . "," . $time_now . "\r\n"; $update_file = fopen($this->filename, "a+"); fwrite($update_file,$input_str); fclose($update_file); } /** * @name func_check_ip * Sjekker om ip-adressen har vært online siste x antall min. */ function func_check_ip(){ $read_file = file($this->filename); $online = false; $get_ip = $_SERVER['REMOTE_ADDR']; foreach ($read_file as $val){ $explode_val = explode(",", $val); $user_ip = $explode_val[0]; $user_time = $explode_val[1]; $make_time = time() - ($this->time * 60); if ($user_time >= $make_time) { if ($user_ip == $get_ip) $online = true; } } if (!$online) $this->func_update_file(); } /** * @name func_read_file * Leser filen, går gjennom den og sjekker siste personene som har vært online. * @return Brukere online */ function func_read_file(){ $read_file = file($this->filename); $this->pers_online = 0; foreach ($read_file as $val){ $explode_val = explode(",", $val); $user_ip = $explode_val[0]; $user_time = $explode_val[1]; $make_time = time() - ($this->time * 60); if ($user_time >= $make_time) { $this->pers_online += 1; } } return $this->pers_online; } } $online = new cl_online; $online->func_check_ip(); echo "Brukere online: " . $online->func_read_file(); ?> Endret 24. desember 2006 av The_Lozer
oxodesign Skrevet 24. desember 2006 Skrevet 24. desember 2006 Bytt den til: var $pers_online; Hvilken versjon av php kjører du på webserveren?
olemedkrutt Skrevet 24. desember 2006 Skrevet 24. desember 2006 Dette med antall online, hvorfor ikke bare sjekke PHPSESSID? Da vil to med samme ip registreres som 2 online
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå