Dahl Skrevet 4. juli 2003 Del Skrevet 4. juli 2003 Hei! Hvordan er det mulig å få til et script som viser hvor mange som er online? Trenger jeg MySQL database da? Takker for alle svar! Lenke til kommentar
Chiclins Skrevet 4. juli 2003 Del Skrevet 4. juli 2003 hvis du bruker sessions så kan du hente session ID til brukeren med session_id(); denne kan du lagre i databasen sammen med tidspunktet siden lastes. hvis du bruker REPLACE INTO istede for INSERT INTO og har sessions_id'n som primær nøkkelen i tabellen vil posten lagres over de gamle postene. det er umulig å vite hvor mage brukere som er online, men du kan vite hvor mange som har lastet siden de siste 5 minuttene e.l. hvis du har felttypen DATETIME på tids feltet i tabellen din kan du hente ut antall brukere som har lastet siden de sisste 5 minuttene SELECT COUNT(*) AS ant FROM sessions WHERE DATE_ADD(time,INTERVAL 5 MINUTE) > NOW() Lenke til kommentar
gspr Skrevet 4. juli 2003 Del Skrevet 4. juli 2003 Du trenger jo ikke nødvendigvis bruke en database, hvis du ikke vil det. Siden antall brukere online nok ikke blir det helt store tallet, kan du jo bare lagre dem i en vanlig flat tekstfil. Lenke til kommentar
Dahl Skrevet 5. juli 2003 Forfatter Del Skrevet 5. juli 2003 Du trenger jo ikke nødvendigvis bruke en database, hvis du ikke vil det. Siden antall brukere online nok ikke blir det helt store tallet, kan du jo bare lagre dem i en vanlig flat tekstfil. Og hvordan gjør man det da? Lenke til kommentar
gspr Skrevet 5. juli 2003 Del Skrevet 5. juli 2003 Se funksjonene under http://no2.php.net/manual/en/ref.filesystem.php. Litt mye å gå inn i detalj på, her og nå. Lenke til kommentar
Dahl Skrevet 5. juli 2003 Forfatter Del Skrevet 5. juli 2003 Tusen takk skal du ha, skal titte på den. :smile: Lenke til kommentar
MDCCLXXVI Skrevet 5. juli 2003 Del Skrevet 5. juli 2003 Hvis du har MySQL: CREATE TABLE useronline ( timestamp int(15) DEFAULT '0' NOT NULL, ip varchar(40) NOT NULL, file varchar(100) NOT NULL, PRIMARY KEY (timestamp), KEY ip (ip), KEY file (file) ); Legg til dette i databasen. Så putter du dette scriptet hvor du vil at "user online" skal stå: <?php //fill in some basic info $server = "localhost"; $db_user = "username"; $db_pass = "password"; $database = "users"; $timeoutseconds = 300; //get the time $timestamp = time(); $timeout = $timestamp-$timeoutseconds; //connect to database mysql_connect($server, $db_user, $db_pass); //insert the values $insert = mysql_db_query($database, "INSERT INTO useronline VALUES ('$timestamp','$REMOTE_ADDR','$PHP_SELF')"); if(!($insert)) { print "Useronline Insert Failed > "; } //delete values when they leave $delete = mysql_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout"); if(!($delete)) { print "Useronline Delete Failed > "; } //grab the results $result = mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file='$PHP_SELF'"); if(!($result)) { print "Useronline Select Error > "; } //number of rows = the number of people online $user = mysql_num_rows($result); //spit out the results mysql_close(); if($user == 1) { print("$user user onlinen"); } else { print("$user users onlinen"); } ?> lykke til Lenke til kommentar
designerus Skrevet 5. juli 2003 Del Skrevet 5. juli 2003 Jaaa! Jeg er glad i dere! Endelig er det noen som beskriver hva som må gjøres. Mange linker bare til hotscripts.com Lenke til kommentar
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å