Degeim Skrevet 16. februar 2006 Del Skrevet 16. februar 2006 Jeg har funnet denne link-telleren på internett (adressen står i filene under, om det er relevant). Den fungerer slik, at jeg lager linker som denne: http://internettside.com/ccount/click.php?id=2 Jeg vet lite om PHP, men skjønner at click.php blir startet opp. Under lister jeg opp filene, og innholdet. Det som skjer, er at php-filene skriver til en fil (clicks.txt) hvor mange ganger linken har vært trykket på (og diverse annen informasjon, se under) clicks.txt: 2%%2006/02/16%%http://internettside.com/index.html%%10%%Beskrivende tekst Det jeg vil ha hjelp til, er å få desse filene til å fortsette å skrive klikk til clicks.txt, men forbli på den side vi er på. Jeg vil altså ikke at browseren skal "browse" til en annen side ved trykk på linken, bare at linken skal telle hvor mange ganger den er blitt trykket på. click.php: <?php # PHP click counter (CCount) # Version: 1.1 # File name: click.php # Written 22nd January 2005 by Klemen Stirn ([email protected]) # http://www.PHPJunkYard.com ############################################################################## # COPYRIGHT NOTICE # # Copyright 2004-2005 PHPJunkYard All Rights Reserved. # # # # The CCount may be used and modified free of charge by anyone so long as # # this copyright notice and the comments above remain intact. By using this # # code you agree to indemnify Klemen Stirn from any liability that might # # arise from it's use. # # # # Selling the code for this program without prior written consent is # # expressly forbidden. In other words, please ask first before you try and # # make money off this program. # # # # Obtain permission before redistributing this software over the Internet or # # in any other medium. In all cases copyright and header must remain intact. # # This Copyright is in full effect in any country that has International # # Trade Agreements with the United States of America or with # # the European Union. # ############################################################################## ############################# # DO NOT EDIT BELOW # ############################# error_reporting(E_ALL ^ E_NOTICE); // Get settings from the settings.php file require "settings.php"; // First check if the ID is set and if it is valid (contains nothing but numbers) $id=$_GET['id']; if(empty($id) || preg_match("/\D/",$id)) {die("Invalid ID, numbers (0-9) only!");} // Different systems use different line endings if($settings['system'] == 2) {$newline="\r\n";} elseif($settings['system'] == 3) {$newline="\r";} else {$newline="\n";} // Get lines from file $lines=file($settings['logfile']); // Let's found the line that starts with our ID number $found=0; $i=0; foreach ($lines as $thisline) { if (preg_match("/^($id\%\%)/",$thisline)) { $thisline=chop($thisline); // We found the line, now we get URL and count from the line list($id,$added,$url,$count,$name)=explode("%%",$thisline); // Increase count by 1 and update this line $count++; $lines[$i]=$id."%%".$added."%%".$url."%%".$count."%%".$name.$newline; $found=1; break; } // This line didn't start with ID, lets go to the next one $i++; } if($found != 1) {die("This ID doesn't exist!");} // Rewrite the log file with the updated line $content = implode('', $lines); $fp = fopen($settings['logfile'],"wb") or die("Can't write to log file! Please Change the file permissions (CHMOD to 666 on UNIX machines!)"); fputs($fp,$content); fclose($fp); // Redirect to the link URL Header("Location: $url"); exit(); ?> display.php: <?php # PHP click counter (CCount) - display number of clicks on a link # Version: 1.1 # File name: display.php # Written 22nd January 2005 by Klemen Stirn ([email protected]) # http://www.PHPJunkYard.com ############################################################################## # COPYRIGHT NOTICE # # Copyright 2004-2005 PHPJunkYard All Rights Reserved. # # # # The CCount may be used and modified free of charge by anyone so long as # # this copyright notice and the comments above remain intact. By using this # # code you agree to indemnify Klemen Stirn from any liability that might # # arise from it's use. # # # # Selling the code for this program without prior written consent is # # expressly forbidden. In other words, please ask first before you try and # # make money off this program. # # # # Obtain permission before redistributing this software over the Internet or # # in any other medium. In all cases copyright and header must remain intact. # # This Copyright is in full effect in any country that has International # # Trade Agreements with the United States of America or with # # the European Union. # ############################################################################## ############################# # DO NOT EDIT BELOW # ############################# require_once "settings.php"; if($settings['system'] == 2) {$settings['newline']="\r\n";} elseif($settings['system'] == 3) {$settings['newline']="\r";} else {$settings['newline']="\n";} echo "var ccount_link = new Array();\n"; $lines = file($settings['logfile']); foreach ($lines as $thisline) { trim($thisline); list($id,$added,$url,$count,$linkname)=explode("%%",$thisline); echo "ccount_link[$id]=$count;\n"; } echo " function ccount_display(id) { document.write(ccount_link[id]); } "; exit(); ?> ids.txt: 2 setup.php: <?php // SETUP YOUR CLICK COUNTER // Detailed information found in the readme file // What type of server is your website on? // 1 = UNIX (Linux), 2 = Windows, 3 = Machintos $settings['system']=1; // Password for admin area $settings['apass']="passord"; // URL of the click.php file $settings['click_url']="http://internettside.com/ccount/click.php"; // OPTIONAL SETTINGS BELOW // // Name of the log file $settings['logfile']="clicks.txt"; // Name of the file where last ID number is stored $settings['idfile']="ids.txt"; // DO NOT EDIT BELOW $settings['verzija']="1.1"; ?> Det finnes også to filer til, men desse tror jeg er lite relevante: style.css, og index.php (som bare er til å administrere linketelleren). Dersom desse to også trengs, vennligst si fra. Takk, Degeim Lenke til kommentar
Arne Skrevet 16. februar 2006 Del Skrevet 16. februar 2006 Slik at linken ikkje flyttar side? Forstod eg rett? Lenke til kommentar
Degeim Skrevet 16. februar 2006 Forfatter Del Skrevet 16. februar 2006 Japp, det er helt korrekt. En kjapp oppsummering: Nå: Linken teller trykk Linken går til ny side Jeg vil ha: Linken teller trykk Linken går IKKE til ny side Lenke til kommentar
NH Skrevet 16. februar 2006 Del Skrevet 16. februar 2006 da er det jo ikke en link? Da må du legge til en komando i php som includer click.php istedenfor å linke deg til click.php Å så fjerne header("location: ...") fra click.php (nesten nederst) Lenke til kommentar
Degeim Skrevet 16. februar 2006 Forfatter Del Skrevet 16. februar 2006 (endret) Takk for svar, jeg klarer å fjerne den koden, men kan du fikse det andre for meg? Jeg har aldri sett en PHP-kode før, så jeg aner ikke hva du snakker om. Endret 16. februar 2006 av Degeim Lenke til kommentar
NH Skrevet 16. februar 2006 Del Skrevet 16. februar 2006 if($_GET['id']){ include "click.php"; } legg den øverst i scriptet du ikke ville vekk fra og sørg for at denne: http://internettside.com/ccount/click.php?id=2 ikke går til click.php men til siden du er på for øyeblikket men ?id=2 må være der til slutt alikevel Lenke til kommentar
Degeim Skrevet 16. februar 2006 Forfatter Del Skrevet 16. februar 2006 Så hvis jeg er på http://internettside.com/index.html? Blir linken http://internettside.com/index.html?id=2 ? Lenke til kommentar
kakkle Skrevet 16. februar 2006 Del Skrevet 16. februar 2006 (endret) da er det jo ikke en link?Da må du legge til en komando i php som includer click.php istedenfor å linke deg til click.php Å så fjerne header("location: ...") fra click.php (nesten nederst) 5617562[/snapback] Trenger vel strengt tatt bare å endre header("location:<ekstern side>") til header("location:<side med linker på>"); Det er vel kanskje det letteste EDIT: Så hvis linkene er på siden http://www.internetside.com/, så endrer du header("location:$url") til header("location:http://www.internetside.com"); Endret 16. februar 2006 av kakkle Lenke til kommentar
Degeim Skrevet 16. februar 2006 Forfatter Del Skrevet 16. februar 2006 (endret) Vil ikke det si at browseren da går til click.php, og så tilbake til index.html, altså to sideåpninger, som kan ta ekstra lang tid? Eller laster den ikke inn noe når det er gjort på den måten? Det er nemlig viktig at siden ikke blir refreshet eller loadet på nytt. Endret 16. februar 2006 av Degeim Lenke til kommentar
NH Skrevet 16. februar 2006 Del Skrevet 16. februar 2006 klart den blir det. dette er php, ikke javascript. php kan kun gjøre noe mens siden laster, ikke etter den er sent til bruker... den blir enten refresha eller sent til ny side. er jo de href i <a> gjør.... å sende brukeren først til klikk, så tilbake igjen er da noe tungvindt... Lenke til kommentar
Degeim Skrevet 17. februar 2006 Forfatter Del Skrevet 17. februar 2006 Ja, det er jeg enig i. Så finnes det en måte å kjøre click.php med ID=X, uten å sende brukeren noensteds? Lenke til kommentar
kakkle Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 Ved å sende brukeren først til click.php også tilbake igjen, gjør det jo litt vanskeligere for brukere å manipulere tellingen. Dersom de bare reloader siden med en ?id=<linkid>, så kan de bare trykke reload for å få en ekstra hit på den siden. Og det er også lettere å bare endre tallet på slutten, for å få hits på andre sider... Men ved å bruke header() i click.php, så blir dette litt mer tiltak å gjøre. Dersom de f.eks. skal ha ekstra hits på linken med id2, må de skrive inn click.php?id=2 for hver gang. Litt mer tiltak. Du kan også f.eks legge i click.php at klikkene bare blir telt dersom man kommer fra siden hvor linkene er. Da blir det enda vanskeligere og mer tiltak å jukse med resultatene... Tror nok ikke du vil merke noen forskjell i tiden det tar. Kan du ikke bare teste metodene, og se hva du liker best ? Lenke til kommentar
Degeim Skrevet 17. februar 2006 Forfatter Del Skrevet 17. februar 2006 (endret) Joda, det skal jeg gjøre, men problemet er at siden er i flash, og alt er en flash-fil, så dersom siden blir refreshet, kommer man jo tilbake til starten av fhasl-animasjonen. Derfor er det ganske viktig at siden ikke må lastest på nytt. Det er også lite trolig at brukeren vet om telleren, siden resultatet bare blir vist til meg, så jeg tror ikke juks er noe stort problem. Endret 17. februar 2006 av Degeim Lenke til kommentar
NH Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 (endret) da er nok beste løsningen å løse det i flash også. flash actionscript går jeg utifra at kan dette eventuelt java? (IKKE javascript) Endret 17. februar 2006 av NH Lenke til kommentar
Magnus Holm Skrevet 17. februar 2006 Del Skrevet 17. februar 2006 Java? Neppe. Bare upraktisk. 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å