[PHP] Counter abhängig vom Referer

lightmann

Cadet 1st Year
Registriert
Aug. 2003
Beiträge
8
Counter abhängig vom Referer

HI!

Ich habe (mal wieder) ein problem... Ich will, das ein Counter abhängig vom Referer hochgezählt wird. z.B. wenn der Besucher von http://www.blablabla.bla/ kommt das der counter in der datei bla.txt um 1 erhöht wird, und wenn der von http://www.hasse-nicht-gesehen.bla/ kommt in der nichtgesehen.txt.

Mein Code ist folgender:

Code:
<?php
$referer = getenv("HTTP_REFERER");
    if ($referer == "www.blablabla.bla");
    {
       $fn = "bla.txt";
       $fp = fopen($fn,"r");
       $zahl = fgets($fp,10);
       fclose($fp);
       $zahl = $zahl + 1;
       $fp = fopen($fn,"w");
       flock($fp,2);
       fputs($fp,$zahl);
       flock($fp,3);
       fclose($fp);
    }

    if ($referer == "www.hasse-nicht-gesehen.bla");
    {
       $fn = "nichtgesehen.txt";
       $fp = fopen($fn,"r");
       $zahl = fgets($fp,10);
       fclose($fp);
       $zahl = $zahl + 1;
       $fp = fopen($fn,"w");
       flock($fp,2);
       fputs($fp,$zahl);
       flock($fp,3);
       fclose($fp);
   } 
 echo $referer;
 ?>

Das Problem ist nur, das der jetzt in beiden Datei eins hochzählt, egal von welcher URL man das aufruft....
Was ist an dem Code falsch?

Danke für die Hilfe.
Gruss
Lightmann
 
Mach mal ne If else Schleife draus, ich glaube dir fehlt die Abbruchbedingung.
 
mach lieber das Semikolon ; hinter den runden Klammern der if-Anweisungen weg ;) das elseif brauchst du nicht, wäre aber besser und schöner :p
 
Ups garnet gesehen ;-) An den Semikolons wird es wohl liegen die habe da nix zu suchen.
PHP:
<?php
$referer = getenv("HTTP_REFERER");
    if ($referer == "www.blablabla.bla")
    {
       $fn = "bla.txt";
       $fp = fopen($fn,"r");
       $zahl = fgets($fp,10);
       fclose($fp);
       $zahl = $zahl + 1;
       $fp = fopen($fn,"w");
       flock($fp,2);
       fputs($fp,$zahl);
       flock($fp,3);
       fclose($fp);
    }

    else ($referer == "www.hasse-nicht-gesehen.bla")
    {
       $fn = "nichtgesehen.txt";
       $fp = fopen($fn,"r");
       $zahl = fgets($fp,10);
       fclose($fp);
       $zahl = $zahl + 1;
       $fp = fopen($fn,"w");
       flock($fp,2);
       fputs($fp,$zahl);
       flock($fp,3);
       fclose($fp);
   } 
 echo $referer;
 ?>

Wieso elseif? If - else sollte reichen...
 
PHP:
<?php
$referer = getenv("HTTP_REFERER")
    if ($referer == "www.blablabla.bla")
    {
       $fn = "bla.txt";
    }

    else if($referer == "www.hasse-nicht-gesehen.bla")
    {
       $fn = "nichtgesehen.txt";
   } 

       $fp = fopen($fn,"r");
       $zahl = fgets($fp,10);
       fclose($fp);
       $zahl = $zahl + 1;
       $fp = fopen($fn,"w");
       flock($fp,2);
       fputs($fp,$zahl);
       flock($fp,3);
       fclose($fp);


 echo $referer;
 ?>

oder wenigstens so, da sich die beiden blöcke ohnehin in nur einem befehl unterscheiden
 
Ok leuchtet mir ein ;)
 
Alternativ kannst du es auch mit switch und case probieren, würde ich in diesem fall sogar empfehlen.
 
tja viele Wege führen nach Zell am See :p
 

Ähnliche Themen

M
Antworten
3
Aufrufe
1.085
Antworten
1
Aufrufe
1.698
Zurück
Oben