Gå til innhold

Trenger litt hjelp med link-teller


Anbefalte innlegg

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
Videoannonse
Annonse
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 av kakkle
Lenke til kommentar

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 av Degeim
Lenke til kommentar

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

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

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 av Degeim
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...