jensens Skrevet 8. januar 2006 Skrevet 8. januar 2006 Noen som vet hvordan jeg kan lage en teller i php? Hvem som besøker siden. Å den tar bare at 1 visit pr ip pr dag? Slik man ikke kan sitte og refreshe siden så det ser uit som om det har vært 2000 stk på siden
trrunde Skrevet 9. januar 2006 Skrevet 9. januar 2006 Hvis du finner en tråd som heter nyttige php scripts som andre kan bruke er det en teller der som teller 1 gang per ip per dag.
minc Skrevet 9. januar 2006 Skrevet 9. januar 2006 <?php $fil = 'teller.txt'; $lf = fopen($fil,"r") or die("Kan ikke lese fra fil: ".$fil); $teller = fgets( $lf ); fclose($lf); //finner ut om personen har vært her før if(!$_COOKIE['logged2']){ setcookie('logged2',true,mktime(24)); $tf = fopen($fil,'w') or die("Kan ikke skrive til fil: ".$fil); fwrite($tf, ++$teller); fclose($tf); } ?> <html> <head> </head> <body> Antall besøkende er <?php echo $teller; ?> </body> </html> Hei, lagde et lite skript som bruker cookies for å sjekke om personen har vært her det siste døgnet. For å få det til å funke må du lage teller.txt og skrive 0 på første linje.
Arne Skrevet 9. januar 2006 Skrevet 9. januar 2006 (endret) Takk, minc. Der lærte jeg noe ôg. Hvordan man setter en cookie. EDIT: Men det var en ting... Den første delen, før du setter cookien, hvorfor lukker du uten å ha åpnet noe? Endret 9. januar 2006 av Fjott
am3k Skrevet 9. januar 2006 Skrevet 9. januar 2006 Du tenker på fclose? Se litt lenger opp etter fopen
BigJackW Skrevet 9. januar 2006 Skrevet 9. januar 2006 Ingen som har noe som dette: » 0 Visits this day » 0 Visits this week » 0 Visits this month » 0 Visits Total Eller noe lignende. Hadde vært flott om scriptet kunne lagre visitene i MySQL database.
???????? Skrevet 9. januar 2006 Skrevet 9. januar 2006 Den mest effektive løsningen der vil være å benytte SQL, hvis ikke må man skrive noe som lagrer til flere filer... ellers vil dette være mye unødvendig jobb for en server.
Arne Skrevet 10. januar 2006 Skrevet 10. januar 2006 <?php $fil = 'teller.txt'; $lf = fopen($fil,"r") or die("Kan ikke lese fra fil: ".$fil); $teller = fgets( $lf ); fclose($lf); Dette står øverst i kodesnutten.
Ernie Skrevet 10. januar 2006 Skrevet 10. januar 2006 Hva mener du med det? 5412394[/snapback] Filer er ikke akkurat det raskeste man kan holde på med. Spesielt når man skal skrive til filen for (nærmest) hvert eneste besøk. Dvs. at bare en side kan genereres om gangen siden hver side må vente på at fila blir lukket slik at den kan åpnes for skriving igjen. I og for seg får man det samme problemet om man bruker database, men de er vesentlig raskere enn å gjøre det "manuelt".
???????? Skrevet 10. januar 2006 Skrevet 10. januar 2006 Nå har ikke jeg lest alle innleggene over, men jeg antar at det fortsatt er snakk om en teller - og skrive til filer. I utgangspunktet vil det være raskere åpne en file og skrive til den enn det vil være å bruke en database. Å skrive til en fil består av følgende: åpne den, skrive og lukke. Bruk av database vil bestå av: koble til dataserver, logg inn, velge database, sende spørring, så vil mysql sjekke spørringen (her sjekker SQL serveren ganske mye), lagre resultatet, sjekke at noe er lagret (if $result og mysql_affected_rows) koble fra databasen. I tillegg må variabler alltid vaskes før de sendes til databasen dersom det er snakk om variabler fra en bruker. Så jeg er litt nyskjerrig på hva du mener Ernie?
Axentrix Skrevet 11. januar 2006 Skrevet 11. januar 2006 (endret) <?php $sekunder = 300; $mysql_connect = mysql_connect("server.no","brukernavn","passord"); if(!$mysql_connect) {return "Kunne ikke koble til database";} mysql_select_db("databasenavn"); $query = mysql_query("select ip,tid from spam where ip='".$_SERVER["REMOTE_ADDR"]."'"); if($line = mysql_fetch_array($query, MYSQL_ASSOC)) { if($line["tid"] <= date("U")) { } else { return; exit; } $query = mysql_query("update spam set tid='".(date("U") + $sekunder)."' where ip='".$_SERVER["REMOTE_ADDR"]."'"); } else { $query =mysql_query("insert into spam (tid,ip) values ('".(date("U") + $sekunder)."','".$_SERVER["REMOTE_ADDR"]."')"); // echo $query; } ?> endre litt Fjerna driten som tilhørt gjestebok sql tabell: create table spam (ip VARCHAR(20),tid VARCHAR(20),PRIMARY KEY (ip)); Endret 11. januar 2006 av Axentrix
Axentrix Skrevet 11. januar 2006 Skrevet 11. januar 2006 (endret) Gjestebok? Hva har gjestebok med teller? 5420808[/snapback] Det har med teller å gjøre, på den måten at "antispamfilteret" mitt fungerer AKKURAT på den måten løsningen her vil fungere;) Og jeg gidder ikke fjerne resten edit: fiksa litt, fornøyd? Endret 11. januar 2006 av Axentrix
Ernie Skrevet 23. januar 2006 Skrevet 23. januar 2006 (endret) Nå har ikke jeg lest alle innleggene over, men jeg antar at det fortsatt er snakk om en teller - og skrive til filer. I utgangspunktet vil det være raskere åpne en file og skrive til den enn det vil være å bruke en database. Å skrive til en fil består av følgende: åpne den, skrive og lukke. Bruk av database vil bestå av: koble til dataserver, logg inn, velge database, sende spørring, så vil mysql sjekke spørringen (her sjekker SQL serveren ganske mye), lagre resultatet, sjekke at noe er lagret (if $result og mysql_affected_rows) koble fra databasen. I tillegg må variabler alltid vaskes før de sendes til databasen dersom det er snakk om variabler fra en bruker. Så jeg er litt nyskjerrig på hva du mener Ernie? 5418093[/snapback] Ups, har glemt å svare på den her. Må vel smertelig innrømme at jeg nok ikke hadde mitt på det rene her. Etter litt lett testing må jeg nok bite i det sure eplet og konstantere at databaser nok er en del treigere enn filer. Edit: En ting jeg riktig nok ikke testet ut er hva som skjer når man får mange forespørsler samtidig. Mistenker at en database kan ha noen fordeler (cache f.eks) der i forhold til fil, men tviler på at det blir noe annet enn i bestefall dødt løp. Det er et saftig sprang mellom fil og db. Dog, svært lite trolig at slikt vil ha noe å si på en privat side med lite trafikk. Endret 23. januar 2006 av Ernie
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å