SEO Welten
Buchempfehlungen
|
Referrer aus HTML-Seiten einlesen und abspeichernCodeschnipsel und PHP-HilfsdateiEin kleines Script für einen Counter zu schreiben ist gut und schön, doch wer möchte nicht weitere Angaben erhalten? Zum Beispiel dürfte es viele Webmaster sehr interessieren, von welchen Suchmaschinen die Besucher auf seine Webseiten kamen und nach welchen Begriffen und Wortkombinationen sie dabei suchten. Um derartige Angaben zu erhalten ist es unerlässlich, die Referrer und deren QueryString einzulesen, abzuspeichern und auszuwerten. Die Abspeicherung kann dabei, je nach Größe des Webprojektes und der Anzahl der auszuwertenden Daten, in eine TXT-Datei oder in eine Datenbank erfolgen. Dazu reicht es bei PHP-Seiten aus, in allen Seiten einen Codeschnipsel wie nachfolgenden einzufügen. Alternativ könnte dieser Codeschnipsel zentral abgelegt und in allen Seiten included werden. <?php $deinreferrer = $_SERVER["HTTP_REFERER"]; $speichere = fopen ("counter.txt", "a") or die (Eine Fehlermeldung!); fputs($speichere, $deinreferrer); fclose($speichere); So weit, so gut, doch fertigen Webmaster nicht nur PHP Seiten und so tummeln
sich bei vielen Webprojekten PHP-Seiten und HTML-Seiten friedlich nebeneinander. Würde hier der Webmaster
oder der Programmierer wieder den auf der
letzten Seite bereits vorgestellten
JavaScript Codeschnipsel verwenden, könnte es zu einer unangenehmen Überraschung kommen. Abgespeichert würde
zwar ein Referrer, nicht aber der Referrer des Besuchers, sonder der von der aufgerufenen Seite. Warum das
so ist, ist gar nicht so schwer zu verstehen und soll kurz erläutert werden. <script language="JavaScript"><!-- document.write("<img src=\".../counter.php?woher="+escape(document.referrer)+"\" width=\"1\" height=\"1\" border=\"0\">"); //-- ></script> Die kleine Hilfsdatei zum Abspeichern würde in diesem Fall wie folgt aussehen: <?php $einlesen = fopen ("counter.txt", "a") or die (Eine Fehlermeldung!); fputs($einlesen, $woher); fclose($einlesen); ?> Allerdings, soviel sei an dieser Stelle angemerkt, nicht alle Hoster stellen alle Funktionen aus Sicherheitsgründen und anderen Aspekten zur Verfügung und was bei dem einem Hoster möglich ist, braucht es bei einem anderen noch lange nicht zu sein. So verhält es sich auch mit dieser einfachen Variante zur Abspeicherung von Referrern, die bei einigen Hostern versagte. Wer sein Script bei unterschiedlichen Hostern oder auf unterschiedlichen Servern einsetzen möchte, sollte lieber gleich einer anderen Variante den Vorzug geben, die eigentlich beinahe bei allen Hostern die Referrer sicher einlesen und abspeichern müsste. Und zwar in dem Sie mit Hilfe der vordefinierten bzw. superglobalen Variable $_Server den QueryString einlesen. Weiterhin sollte noch etwas Wert auf Sicherheit gelegt und die Eingangswerte gefiltert werden. Die kleine Hilfsdatei zum Abspeichern der Referrer könnte dann in etwa wie folgt aussehen. <?php if (isset($_SERVER["QUERY_STRING"]) and !empty($_SERVER["QUERY_STRING"])){ $einreferrer = $_SERVER["QUERY_STRING"]; $einreferrer = preg_replace("/[^a-zA-ZäöüÄÖÜß0-9.,:;!?&()\/+_-]/"," ",$einreferrer); $einreferrer = htmlspecialchars($einreferrer, ENT_QUOTES); $einreferrer = preg_replace("/&/","&",$einreferrer); } else {$einreferrer = "No Referrer";} $speichern = fopen("counter.txt", "a") or die (Eine Fehlermeldung!); fputs($speichern, $einreferrer); fclose($speichern); ?> Im Zweifelsfall sollten Sie mit phpinfo() im Vorfeld testen, welche PHP Servervariablen Ihnen bei Ihren Webprojekten zur Verfügung stehen. Zwar geht oftmals Probieren über Studieren, doch eine kleine Abfrage im Voraus mit phpinfo kann zumindest nicht schaden. PHP Counter einbinden « zurück / als Demo » Testcounter |
Navigation
Finden und - Optimierung - Zukunftsaussichten
Webcoding
Übersicht Web Services Tutorials &
und vieles mehr...
|