WinFuture-Forum.de: Ref Link Catcher - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Ref Link Catcher


#1 Mitglied ist offline   tobi89 

  • Gruppe: aktive Mitglieder
  • Beiträge: 301
  • Beigetreten: 26. Dezember 05
  • Reputation: 13
  • Geschlecht:Männlich

geschrieben 10. Juni 2007 - 17:05

Hallo, ich habe hier ein php Script, welches mein Kumpel geschrieben hat, er sich aber nicht so richtig mit den reflink zeugs auskennt. Ich habe das Script nun via include in die index.php von joomla eingebunden. Jedoch wird nur geloggt, wenn man die referer.php direkt aufruft. Das sieht dann so aus:

http://www.jfw-licht....de/referer.log

Ich möchste aber, dass es die Herkunftsseite logt, und nicht die Adresse zum referer.php. Wäre sehr lieb, wenn sich jmd das Script mal ansehen könnte, und so verbessern könnte, dass ich es als php nichtkönner es auch einigermaße verstehen. Hier ist das Script:

<?php

//Konfiguration

$logfile = "referer.log";   //Der Pfad zur logdatei
$relogtime = 900;            //Die Zeit bis eine Person erneut gelogt wird
$phpversion = "4.0"; 

//Refscript
if (version_compare($phpversion, '4.0.0') == -1) {
	$_REQUEST = array_merge($HTTP_COOKIE_VARS, $HTTP_POST_VARS, $HTTP_GET_VARS);
    $_COOKIE = $HTTP_COOKIE_VARS;
	$_SERVER = $HTTP_SERVER_VARS;
	$_FILES = $HTTP_POST_FILES;
	$_GET = $HTTP_GET_VARS;
	$_POST = $HTTP_POST_VARS;
}
if(file_exists($logfile))
{
    $fp = fopen($logfile,"r+");
    $a = 0;
    $tmp = fread ($fp, filesize ($logfile));
    $string = explode("\n",$tmp);
    /*
    while (!feof($fp)) {
        $string[$a++] = fgets($fp, 4096);
    } */
    fclose($fp);
}else {
    $fp = fopen($logfile,"w+");
    fclose($fp);
}
$add = "True";
for ($a=0;$a<sizeof($string);$a++)
{
    if($string[$a] != "") {
        $temp = explode("|", $string[$a]);
        $dat = explode(".",$temp[1]);
        $time = explode(":",$temp[2]);
        //die(mktime($time[0],$time[1],0,$dat[1],$dat[0],$dat[2]) + 900 . "<br>" . time());
        if(($temp[0] = $_SERVER['REMOTE_ADDR']) && (mktime($time[0],$time[1],0,$dat[1],$dat[0],$dat[2]) + $relogtime) > time())
            $add = "False";
    }
}
if($add == "True")
{
    $referer = $_SERVER["HTTP_REFERER"];
    $newline = $_SERVER['REMOTE_ADDR'] ."|". date("d.m.Y") ."|".  date("H:i") ."|". $referer ."\n";
    $fp = fopen($logfile,"a+");
    fwrite($fp,$newline);
    fclose($fp);
} else
    echo "Schon besucht";

?>


0

Anzeige



#2 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 10. Juni 2007 - 17:34

Wenn das loggen bei bestimmten Seiten funktioniert, liegt es wahrscheinlich nicht am eigentlichen Script. Möglicherweise stimmt einfach nur der Pfad nicht. Wenn die Seite direkt aufegrufen wird, ist der Pfad zur Logdatei ja ein anderer, als wenn das Script in die index.php includiert wird, dann muß der Pfad von der index.php aus angegeben werden. Weil der aber nun nicht stimmt, wird nicht geloggt.
Also das wäre das, was ich als erstes gucken würde.
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#3 Mitglied ist offline   tobi89 

  • Gruppe: aktive Mitglieder
  • Beiträge: 301
  • Beigetreten: 26. Dezember 05
  • Reputation: 13
  • Geschlecht:Männlich

geschrieben 10. Juni 2007 - 19:22

Naja, die index liegt im gleichen ordner wie die script datei.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0