24. august 2003 - 12:05Der er
14 kommentarer og 1 løsning
Tælle klik
Noget alá: <a href="..." onClick="<? php_tælle_funktion(); ?>">
Heysan
Jeg er med på, at php er server-side, men alligevel... hvordan tæller jeg ved hjælp af php og filer, hvor mange gange en bruger klikker på et link til en anden side? Her tænkes på eksterne links.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
nope, det er blot links til andre sider i almindelige <a>-tags... Apropos cliche, så er det et af de domæner jeg har, som ikke har mysql osv... www.mereomsporten.dk
istedetfor: <a href="hvorhen.html"> tekst </a> skriver du: <a href="klikteller.php?dest=hvorhen.html"> tekst </a>
og så laver du e lille fil "klikteller.php" til at registrere at der blev klikket og redirecte brugeren til den fil:
<?php if ( isset( $_GET['dest'] ) ) { $dest = $_GET['dest']; // den side der skal vises når vi har talt } else { $dest = "fejlside.php?fra=$HTTP_REFERER"; // side der forteller klikteller blev brugt forkert header( "Location: $dest" ); exit; } $tellefilnavn = "tel_" .ereg_replace( "\W", "_", $dest ) .".txt"; // vi teller op i en fil der hedder "tel_hvorhen_html.txt" // det kan gøres på masser af måder, database, fællesfil for alle tellere, osv. $filpointer = fopen( $tellerfilnavn, "r+" ); // NB: "r+" if( feof( $filpointer ) ) { // det er en ny fil $tal = 1; } else { // der står noget i filen allerede $tal = fread( $filpointer, 1000 ) +1; // læg en til det der står rewind( $filpointer ); // og gør klar til at skrive den ny værdi } fwrite( $filpointer, $tal ); fclose( $filpointer );
Oops... der er dog et lille problem... Warning: feof(): supplied argument is not a valid stream resource in /STORE/mereomsporten_dk/public_html/counter.php on line 17
Warning: fread(): supplied argument is not a valid stream resource in /STORE/mereomsporten_dk/public_html/counter.php on line 20
Warning: rewind(): supplied argument is not a valid stream resource in /STORE/mereomsporten_dk/public_html/counter.php on line 21
Warning: fwrite(): supplied argument is not a valid stream resource in /STORE/mereomsporten_dk/public_html/counter.php on line 23
Warning: fclose(): supplied argument is not a valid stream resource in /STORE/mereomsporten_dk/public_html/counter.php on line 24
Kan det hænge sammen med at filerne ikke eksisterer i forvejen??? Jeg har lavet CHMOD=777 i det lib, hvor jeg vil have filerne...
Det ser meget ud somom det kald til fopen går galt. en quick-fix kunne være at oprette tellerfilen manuelt og skrive 0 i den. men det er klumret at skulle gøre for alle links.
Ahh. jeg laver en variabel der hedder $tellefilnavn (uden r) men prøver at åbne med en der hedder $tellerfilnavn (med r). prøv at fjerne det r.
Jep, problemet er at det giver mest mening at bruge 'a+' fremfor 'r+' når filen ikke eksisterer. Det giver tilgengæld problemer når filen så endelig findes. Bruges a+ når filen eksisterer sker der blot det at filen indeholder ligeså mange et-taller som der har være klik...
PS: "a+" burde ikke specielt være bedre end "r+". Hvis det er kan du evt starte med en rewind før du tester for end of file.
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.