Martin A. Skrevet 13. juni 2006 Del Skrevet 13. juni 2006 Jeg kunne tenke meg et script som viser hvor mange ganger en ekstern link har blitt brukt. Eneste jeg kan komme på en er switch-case pr link som skriver til en fil, men det høres ganske så tungvint ut. Bør da være noe som er mye lettere. Noen som kan sette meg i gang med noe? Samme om det er via mySQL eller flatfil. Mvh, Martin Lenke til kommentar
ZoRaC Skrevet 13. juni 2006 Del Skrevet 13. juni 2006 (endret) Lag mappen "telling" og chmod 777. $file = basename($_GET['file']); if empty($file) die("No file selected!"); $fp = fopen("./telling/$file.txt","r"); $count = fread ($fp, filesize ("./telling/$file.txt")); fclose($fp); $count++; $fp = fopen("./telling/$file.txt","w"); fwrite($fp, $count); fclose($fp); header("Location: http://server.com/filer/$fil"); Link: <a href="lastned.php?fil=filnavn.exe">Link</a> PS: Skrev det nå, ikke testet! Edit: Må lære meg å lese, trodde det var et script for å telle antall nedlastinger av en fil jeg. Endret 13. juni 2006 av ZoRaC Lenke til kommentar
Martin A. Skrevet 13. juni 2006 Forfatter Del Skrevet 13. juni 2006 Tenkte på noe ala "?side=rallrall&go=2", så øker den feks "2.txt" med en, og videresender brukern til "dagbladet.no". Men da kan jeg jo fortsatt bruke noe lignende, men hvordan blir det da når header(Location) er forskjellig fra link til link? Å skrive hele URL til siden i linken er uaktuelt. Lenke til kommentar
ZoRaC Skrevet 13. juni 2006 Del Skrevet 13. juni 2006 (endret) $side[] = "dagbladet.no"; $side[] = "vg.no"; $side[] = "google.no"; $goto = $_GET['side']; $goto_url = $side[$goto]; if (empty($goto_url)) die("Invalid site selected!"); $fp = fopen("./telling/$goto.txt","r"); $count = fread ($fp, filesize ("./telling/$goto.txt")); fclose($fp); $count++; $fp = fopen("./telling/$goto.txt","w"); fwrite($fp, $count); fclose($fp); header("Location: http://www.$goto_url"); Noe sånt kanskje? Edit: Dagbladet blir da script.php?goto=0 Vg blir da script.php?goto=1 osv Endret 13. juni 2006 av ZoRaC Lenke til kommentar
Martin A. Skrevet 13. juni 2006 Forfatter Del Skrevet 13. juni 2006 Det så noe riktig ut ja Takk skal du ha, tester ut når jeg kommer hjem Lenke til kommentar
Martin A. Skrevet 13. juni 2006 Forfatter Del Skrevet 13. juni 2006 (endret) Auda, ble vist ikke så lett dette. Ble problematisk når jeg blanda inn andre get-variabler. bruker jeg feks "side=tull&go=3" får jeg dette Fatal error: [] operator not supported for strings in /bane/til/telling.php on line 3 Og på linje 3 har jeg "$side[] = "diskusjon.no/";". Prøvde først å putte inn denne: if(isset($goto) && !empty($goto) && !empty($goto_url)) { for å hindre lesing og skriving av fil uten at get-go var aktiv. Noe som heller ikke funktet helt ypperlig. Så prøvde vi med inkluderingen av skriptet. if(isset($_GET['go'])) { include('telling.php'; } Så fikk jeg høre av noen på IRC at jeg måtte bruke array(). Ok, men jeg har aldri brukt array i noen sammenhenger, så det er helt nytt for meg. Titta i manualen, og ble ikke klokere av det. Men litt lenger ned så ser jeg dette. If you are creating an array with a large number of static items, you will find serious performance differences between using the array() function and the $array[] construct. For example: <? // Slower method $my_array = array(1, 2, 3, � 500); // Faster method $my_array[] = 1; $my_array[] = 2; $my_array[] = 3; � $my_array[] = 500; ?> Det vil jo da si at det skal gå ann å gjøre det slik jeg gjør det. Om det har noe å si, så kjører servern PHP 4.4.2. EDIT: Det funker om man kjører get-go alene. Men den øker ikke filen. Og hvorfor bruker du "filesize()" inni "fread()"? Endret 13. juni 2006 av M4rTiN Lenke til kommentar
ZoRaC Skrevet 14. juni 2006 Del Skrevet 14. juni 2006 Mistenker at du kanskje har glemt ";" på enden av linje 2? Ellers er det vanskelig å si uten å se koden... Den fread/fwrite-funksjonen var noe jeg hadde liggende, vet ikke hvorfor den bruker filesize der, men er vel for at den skal lese hele filen? Lenke til kommentar
Martin A. Skrevet 14. juni 2006 Forfatter Del Skrevet 14. juni 2006 <?php $side[] = "www.begin.no"; $side[] = "www.diskusjon.no/"; $side[] = "www.start.no/tegneserier/m/"; $side[] = "www.dagbladet.no/tegneserie/pondus/"; $side[] = "www.dagbladet.no/tegneserie/nemi/"; $side[] = "www.dagbladet.no/tegneserie/rocky/"; $goto = $_GET['go']; $goto_url = $side[$goto]; if (isset($goto) && empty($goto_url)) { die("Invalid site selected!"); } if(isset($goto) && !empty($goto) && !empty($goto_url)) { $fp = fopen("./data/telling/$goto.txt","r"); $count = fread ($fp, filesize ("./data/telling/$goto.txt")); fclose($fp); $count++; $fp = fopen("./data/telling/$goto.txt","w"); fwrite($fp, $count); fclose($fp); header("Location: http://$goto_url"); } ?> Slik ser den ut nå. Skal prøve ut at den legger til ip-adresse ellerno, og at den teller antall linjer i fila i stede. 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å