hitzeschwitze: Referrerscript: Problem

Hallo!

Ich habe von drweb.de (http://www.drweb.de/programmierung/backlink_02.shtml) folgendes script:

Der Javascript-Aufruf für die Ermittlung des Referrers

<script language="javascript">
function write_ref() {
document.write("<script language='Javascript' src='http://www.domain.de/scripts/backlink.php?woher=" + document.referrer + "'>");
document.write("</");
document.write("script>");
}
write_ref();
</script>

Das PHP-script

<?php
$woher = $_GET[woher]; $schreiben = "";
$zeile = ""; $titelzeile = "";
$doschreiben = 1; $googlehide = 1;

echo "document.write('<b>Backlink-Service: Diese Seiten haben uns empfohlen.</b><br><br>');\n";

if($woher != "") {
if(ereg("google", $woher) || ereg("yahoo", $woher) || ereg("drweb", $woher) || ereg("localhost", $woher) || ereg("ideenreich", $woher)) { $googlehide = 0;}
$buch = implode("", file($woher));
if (preg_match("/<title>(.*)</title>/i", $buch, $title)) { $titelzeile = $title[1]; }
if($titelzeile == "") { $doschreiben = 0;
} else { if(strlen($titelzeile) > 35) { $titelzeile = substr($titelzeile, 0, 35)."..."; } }

if($googlehide == 1) {
$titelzeile = str_replace(""", "", $titelzeile);
$titelzeile = str_replace("'", "", $titelzeile);
$titelzeile = str_replace("´", "", $titelzeile);
$schreiben = "<a href="$woher" target="_blank">$titelzeile</a><br>\n";
}
$datei = file ("referrerlinks.txt");
for($counter = 0; $counter < 12; $counter++){
$schreiben .= $datei[$counter];
if(ereg ($woher, $datei[$counter])) { $doschreiben = 0; }
if(ereg ($titelzeile, $datei[$counter])) { $doschreiben = 0; }
}
} else { $doschreiben = 0; }

$datei = file ("referrerlinks.txt");
for($counter = 0; $counter < 12; $counter++){
$datei[$counter] = str_replace(""", "", $datei[$counter]);
$datei[$counter] = str_replace("'", "", $datei[$counter]);
$datei[$counter] = rtrim($datei[$counter]);
echo "document.write('".$datei[$counter]."');";
}

if($doschreiben == 1 && $googlehide == 1) {
$fp = fopen("referrerlinks.txt","w+");
flock($fp,2);
fwrite($fp,$schreiben);
flock($fp,3);
fclose($fp);
}
?>

Ich würde gerne das Ganze so umwandeln, dass ich kein javascript mehr brauch (weil
unzuverlässiger und nicht bei allen Besuchern aktiviert). Ich dachte mir, ich setz
die Datei backlink per include in die zu überwachenden Dateien und
änder' nur die zweite Zeile im script,

$woher = $_GET[woher];
in
$woher = getenv("HTTP_REFERER"); oder
$woher = $HTTP_SERVER_VARS["HTTP_REFERER"];

Aber das funktioniert nicht wirklich. Wo liegt denn der Fehler?

  1. Hi,

    Ich habe von drweb.de (http://www.drweb.de/programmierung/backlink_02.shtml) folgendes script:

    recherchiere bitte im Archiv, was von Dr.Webs Seiten und Scripts zu halten ist.

    Aber das funktioniert nicht wirklich. Wo liegt denn der Fehler?

    Recherchiere bitte im Archiv, was a) eine Fehlerbeschreibung ist, und warum b) der Referer ein sehr schwaches Merkmal ist.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Recherchiere bitte im Archiv, was a) eine Fehlerbeschreibung ist

      Fehler: Es wird weder in die Datei geschrieben noch ausgegeben.

      und warum b) der Referer ein sehr schwaches Merkmal ist.

      Was wäre besser, um den Referrer festzustellen als ...ja, der Referer?

      1. Recherchiere bitte im Archiv, was a) eine Fehlerbeschreibung ist

        Fehler: Es wird weder in die Datei geschrieben noch ausgegeben.

        und warum b) der Referer ein sehr schwaches Merkmal ist.

        Was wäre besser, um den Referrer festzustellen als ...ja, der Referer?

        Haaallo?

        Irgendwie wollt' ich gar nicht wissen, dass dr.web blöd ist und der referer nich wirklich vertrauenswürdig - ich will schließlich keine sicherheitsrelevanten Daten weitergeben, sondern einfach ne kleine Auflistung, von wo die Besucher zuletzt auf meine Site gekommen sind.

        Wie schon erwähnt hat <? include("backlink.php"); ?> und das Ändern des php-scripts in der 3. Zeile, $woher = $_GET[woher]; zu
        $woher =  $_SERVER['HTTP_REFERRER'];
        nichts gebracht - im wahrsten Sinne des Wortes: Es kommt keine Fehlermeldung, es wird nichts in die Datei geschrieben, es wird nichts ausgegeben.

        Wenn nun bitte jemand so gütig wäre, mir den Fehler aufzuzeigen ...

        1. Hi,

          Haaallo?

          was ist los? Irgendwas nicht in Ordnung?

          Irgendwie wollt' ich gar nicht wissen,

          Wie Du dem Archiv entnehmen kannst, sagen wir Dir hier nicht, was Du wissen _willst_, sondern was Du wissen _sollst_.

          Es kommt keine Fehlermeldung, es wird nichts in die Datei geschrieben, es wird nichts ausgegeben.

          Was Für Debug-Ausgaben hast Du mit welchem Ergebnis durchgeführt?

          Cheatah

          --
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes