03. januar 2004 - 23:49Der er
15 kommentarer og 1 løsning
En counter til mit site
Jeg kunne godt tænke mig en komplet kode til min counter. Counteren skal kunne vise hvor mange der er online i øjeblikket, og hvor mange der har været på ialt. jeg kunne forstille mig at denne her samtidig loggede ip og hostname.
counter bliver enten skrevet i en til (txt), eller i mySQL. men mySQL ved jeg ikke helt, hvordan sådan en virker... søger hjælp........
// Online tæller $tid = date("Y-m-d H:i:s", (time()-60*10)); mysql_query("DELETE FROM online WHERE tid < '$tid'"); $tjek = mysql_query("SELECT * FROM online WHERE ip='$ip'") or die(mysql_error()); if(mysql_num_rows($tjek) == 0) { mysql_query("INSERT INTO online (tid, ip) VALUES (now(),'$ip')"); } else { mysql_query("UPDATE online SET tid=now() WHERE ip='$ip'"); } $online = mysql_query("SELECT COUNT(*) AS antal FROM online"); echo "Der er lige nu ".mysql_result($online,0)." online<br>";
// Antal unikke besøg, tæller pr. dag. $besoeg_idag = mysql_query("SELECT * FROM besoeg WHERE ip='$ip' ORDER BY id DESC"); $row = mysql_fetch_array($besoeg_idag); if ($row["tid"] < date("Y-m-d H:i:s", (time()-60*60*24))) { mysql_query("INSERT INTO besoeg (tid, ip) VALUES (now(),'$ip')"); } $besoeg = mysql_query("SELECT COUNT(*) AS antal FROM besoeg"); echo "Der har været ".mysql_result($besoeg,0)." besøg";
mysql_close($connection); ?>
CREATE TABLE `online` ( `id` int(11) NOT NULL auto_increment, `tid` datetime NOT NULL default '0000-00-00 00:00:00', `ip` varchar(20) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;
CREATE TABLE `besoeg` ( `id` int(11) NOT NULL auto_increment, `tid` datetime NOT NULL default '0000-00-00 00:00:00', `ip` varchar(20) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=1 ;
ahv=> det lyder meget interessant. er det muligt at du kan sende en komplet eksempel, til mig. jeg kender ikke mySQL (eller hvad det hedder), så jeg kunne tænke mig, at du samtidig ville skrive en kode, som der opretter tabellerne??? min mail er: smirnoff@mail.dk
Du opretter disse tabeller ved at gå ind i din MySQL database via PHPMyAdmin, så går du ind i din database ude til venstre, så går du op i SQL og indsætter de linier jeg skrev i mit forrige indlæg også tryk på go (udfør) Så er de oprettet. Husk desuden at ændre følgnede linier: $connection = mysql_pconnect("host", "user", "pass"); mysql_select_db("database");
lige et sidste spørgsmåL: Hvis jeg nu skal se tabellerne (altså klokkeslet, og IP), skal jeg så se dem via min browser (altså et php dokument), kan du så skrive en kode til mig, hvor jeg kan se dem allesammen, og samtidtig slette alle registreringerne...????
ahv=> Er det muligt at omkode kilde-koden, så den hele tiden viser, hvor mange der er online??? (altså, hvor den opdateres igen, når siden indlæses), som jeg faktisk ønskede..... ;)
thenegotiator -> Det kan ikke betale sig at lave et php-dokument der spytter oplysningerne ud, PHPMyAdmin er meget bedre, her har du også en ordenlig beskyttelse.
ahv=> jeg har oprettet tabellerne i PHPMyAdmin, som du har fortalt jeg skulle gøre, og brugt din kildekode, og den virker fint... :D mit problem før var, at når en af mine kammerater forlod min web-side, stod han stadig som ONLINE...
okay.. hehe.. takker.. jeg er ny til PHP, og MySQL som du nokk har fundet ud af... :D
var det muligt at du lige kunne spytte en kode ud af ærmet, som der virker registreringerne i besøgte?? med id, klokkeslet, og IP, så ville det fandme være iorden :D
desuden, hvis jeg sætter $tid til fx. 5 min, og besøgende bladre rundt, og indlæser koden flere gange, så bliver tiden vel bare opdateret???
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.