Referrer Skript - Problem

karimun

Grünschnabel
Hallo, mein Referrer Skript speichert die hits zu meiner Seite dann NICHT wenn die Abfrage mit $HTTP_REFERER erfolglos bleibt - also ´no referrer´ (Passiert wenn man den Link direkt in den Browser eintippt oden einen Proxy benutzt..oä)

Verantwortlich sind, meines Wissens, die folgenden Zeilen:

$ref=$HTTP_REFERER;
if(($ref!="")and(!ereg("unknown", $ref))and(!eregi($yourdomain,$ref))) {
mysql_query("insert into referer values(NULL,'$HTTP_REFERER')");
}

Wass muss geändert werden um die ´no referrer´ hits auch gespeichert zu bekommen (zB unter der Bezeichnung ´No Referrer´)
Danke für eure Hilfe.
 
Du könntest es wie folgt versuchen:
PHP:
<?php
	function getHost($str) {
		$output = parse_url($str);
		return ( isset($output['host']) )
			?	$output['host']
			:	FALSE;
	}

	if( isset($_SERVER['HTTP_REFERER']) && ($_SERVER['HTTP_HOST'] != getHost($_SERVER['HTTP_REFERER'])) !== FALSE ) {
		$query = "
			INSERT INTO
			        `referer`
			SET
			        `uri` = '".$_SERVER['HTTP_REFERER']."'
		";
		mysql_query($query);
	}
?>
 
Vielen Dank erstmal.

Da die von mir angegebenen Zeilen nur ein Auszug aus dem ganzen Skript sind kann ich den Abschnitt nicht völlig neu schreiben.
Ich denke eher an die Möglichkeit der Variablen $ref den Stringwert ´No Referrer´ zuzuweisen falls die Bedingungen ($ref!="")and(!ereg("unknown", $ref))and(!eregi($yourdomain,$ref)) NICHT zutreffen (wahrscheinlich kann eine einfache if the else Anweisung das Problem lösen.
 
Dann ersetzt du einfach den Ausdruck zum Ausführen der Datenbankanfrage durch die Zuweisung. Achja, vorher solltest du die Bedingungen negieren und den Bedingungsausdruck entsprechend anpassen.
 
... und genau damit, das Ersetzen des ensprechenden Ausdrucks, habe ich so meine Problemchen.

Kann bitte jemand die Datenbankabfrage ändern und posten?
Dank nochmals.
 
Zurück