19. februar 2001 - 00:44Der er
27 kommentarer og 1 løsning
Klik tæller, med txt fil..
Jeg har en række billeder som er lavet som link.. Linket kunne ser f.eks. sådan ud : www.minside.dk/taeller.php3?Klik_id=20 Hvert billede har så hver deres id nr. Hvordan laver jeg det sådan at hver gang der er en der trykker på et billede, bliver dets id nr brugt (på tealler siden) til at åbne en txt fil, finde billedets id i filen og ligge 1 til en tæller ud for dets id.. Altså en txt fil hvor man kan gå ind og se en kliktæller på alle mine billeder..
Hmm, blev vist skrevet lidt kringlet, men håber I ved hvad jeg mener.. Ellers spørg bare..
fclose ($logg); } $f = file($fil); $antal = count($f); if ($x == \"t\") { // Hvis man har været der før... print \"Der har været $antal brugere på siden.\"; } else { print \"du har været$antal gange på siden.\"; } ?>
Denne virker hvis billederne ligger på hver sin side.
BARE konvertere...det er nemmere med min bare smække den kode på en side og en count fil (txt) og så linke så viser den antal hits men dit var ikke engang php men okay det er op yil tupsy
Ja så kunne jeg være her igen.. :-) no doubt>>>Billederne ligger flere på en side..
Mads>>>Virker din meget simple metode lige meget hvor mange billeder jeg har?? Opretter den selv nye id\'er hvis jeg ligger flere billeder på?? (Ikke nødvendigt, men skal bare vide om jeg selv skal lave en txt fil ´med alle id\'er først.
Det scriptet skulle kunne er så : Bruge en txt fil som tæller.. Altså så man kan åbne txt filen og se at f.eks. id nr 21 har haft 26 klik. id nr 22 har haft 33 klik o.s.v.
Jeg tror også at det er det dit script skulle kunne, men umiddelbart virker det ikke.. :-(
Det tog lige lidt tid, for de linieskift drillede mig. Sådan som den virker nu skrives kun et tal for hvormange hits det enkelte billlede har haft, ikke billedets navn, så tælleren for klik_id=18 står på den attende linie, eller kan hentes via
Men her er scriptet, det virker, jeg har testet det. Når du gør det første gang og filen ikke findes får du en WARNING, men den betyder ikke noget.
<? $file=\"count.txt\"; $filearray=file($file); //af en eller anden grund returnerer count værdien 1, når den ikke kan åbne filen med file() if (count($filearray)==1) { for ($i=0;$i<=20;$i++) { //hvis filen ikke existerer fyldes array\'et med 0\'er efterfulgt af linieskift $filearray[$i]=\"0\\n\"; } }
//arrayet opdateres for det modtagne klik_id og efterfølges af et linieskift $filearray[($klik_id-1)]=($filearray[($klik_id-1)]+1).\"\\n\"; $fp=fopen($file,\"w\"); for ($i=0;$i<=(count($filearray)-1);$i++) { //tallen (og linieskiftene) fra arrayet indlæses i filen fwrite($fp,$filearray[$i]); } fclose($fp); ?>
Kanont.... Men jeg ville da også MEGET gerne have det sådan at den skrev id nr. ud for tallet.. Kan man ikke bare sætte $klik_id ind der hvor den skriver til filen et eller andet sted???
<? $file=\"count.txt\"; $filearray=file($file); //af en eller anden grund returnerer count værdien 1, når den ikke kan åbne filen med file() if (count($filearray)==1) { for ($i=0;$i<=20;$i++) { $j=$i+1; $ID=\"ID=$j\\n\"; $filearray[$i*2]=$ID; $filearray[($i*2)+1]=\"0\\n\"; } }
//arrayet opdateres for det modtagne klik_id og efterfølges af et linieskift $filearray[(($klik_id*2)-1)]=($filearray[(($klik_id*2)-1)]+1).\"\\n\"; $fp=fopen($file,\"w\"); for ($i=0;$i<=(count($filearray)-1);$i++) { //tallen (og linieskiftene) fra arrayet indlæses i filen fwrite($fp,$filearray[$i]); } fclose($fp); ?>
Nææ, den kan tage lige så mange billeder det skulle være.. Den opretter bare kun 21 linier den første gang man bruger den.. Jeg skulle bare lave en txt fil med en lang række 0\'er i så virkede det..
Men tæller 2 virker stadig ikke... Gider du/I stadig at kikke på det??
Er det ikke muligt bare at indsætte £klik_id et eller andet sted så id nr. som den har fra \"klik siden\" bare bliver skrevet med ind i txt filen sammen med resultatet af kliktælleren??
Er lige kommet hjem. 1. Jo den er lavet til 21, men det handler jo kun om at sætte de tal til den størrelse du tror du kan hænde at nå op på, f.ex. 30 eller 50 eller 100, hvad ved jeg. 2. Du skal slette den gamle \"count.txt\" når du skal bruge det nye script, ellers er jeg ikke sikker på at du kan få det til at virke. 3. Hvis du bare vil registerer klik_id\'er efterhånden som de opstår og de evt ikke engang kommer i rækkefølge, ja, så er det ved at blive besværligt at gøre i en .txt fil, så er det meget lettere at lave i en database (hvilket det under alle omstændigheder ville være)
Men altså, i den første \'for\'-sætning sætter du tallet til det du maximalt forventer. Du sletter count.txt filen og så skulle det køre. Det kan godt raffineres yderligere, men så bliver det lettere at lave i en db.
- hvis du har alt for mange kliks på en gang, virker den garanteret ikke :) Jeg har oplevet at min tekstbaserede tæller bliver nulstillet engang imellem - jeg tror det er hvis der er to brugere der henter filen på nøjagtig samme tid...
Mads>>>> Det med at slette count.txt vil jeg lige prøve når jeg kommer hjem... (Sidder på jobbet nu.. :-])
Og ja, jeg ved at det nok ville være lættere at lave i en DB, men jeg har ikke et hotel der understøtter MYSQL.. Øv øv...
Jeg kan jo sagtens lave count.txt som en fil der indeholder alle id\'er fra starten af.. Bare jeg for den rigtige tælling ud for de rigtige id\'er.. Men jeg prøver lige tæller 2 når jeg kommer hjem..
r_breinholt har fuldstændig ret i at hvis to åbner filen samtidigt er der et problem. Det burde ikke nulstille den men kun et klik bliver talt med. Hvis du har så mange klik at det er et reelt problem bliver du nok nødt til at skifte til et hotel med en database.
Og så lige et tillægs ?.. Kan man lave et script der går ind ov kikker alle id\'er igennem i count.txt og viser de 5 eller 10 id\'er med flest klik?? Altså en top 5 eller top 10 visning..
Det viser sig at tælleren BLIVER nulstillet ved overbelastning...
Kan man lave det sådan at man kun kan klikke 1 gang om dagen??
Tupsy!!
\"Mange\" point gives...
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.