Frage zu einem Referer Script

nocolors

Grünschnabel
Hallo,

habe eine Frage zu einem Referer Script.
Ich habe nun ein Script, welches mir in einer MYSQL Datenbank die Referer hineinschriebt.
Es wird die gesamte URL mitgelogt, wie kann ich tun, dass er nur die Domäne mitloggt?

Also statt http://wp.3dwars.net/perl-bin/3dwlay/3dwlay.pl?xpage=wp/toplist&pid=14 soll er nur http://wp.3dwars.net in die Datenbank eintragen...

Kann mir jemand helfen?

Hier das Script, das den referer in die DB schreibt:

PHP:
<?php
$hostname = "xxxxxxxxxx";
$username = "xxxxxxxxx";
$password = "xxxxxxxxx:";
$userstable = "xxxxxxxxx";
$dbName = "xxxxxxxxx";
$domain = "xxxxxxxxxx";

$ref = "$HTTP_REFERER";
if (!empty ($ref)){
$ref2= strtolower($ref);
$check=strstr($ref2,"$domain");
}

if(!empty($check)){
}

elseif (empty($check)){
mysql_connect($hostname, $username, $password) or die(mysql_error());
mysql_select_db("$dbName") or die(mysql_error());
$query = "select * from $userstable where url = '$ref'";
$result = mysql_query($query);
$rows = mysql_num_rows($result);

if (mysql_num_rows($result) == 0){
 $hits =  "1";
 $query1 =  "insert into $userstable (url,hits) values('$ref','$hits')";
mysql_query($query1); 
} 

else {
 $hitquery =  "select hits from $userstable where url = '$ref'";
 $result2 = mysql_query($hitquery);
 $row = mysql_fetch_array($result2);

 $hits =$row["hits"];
 $query2 =  "update $userstable set hits = hits+1 where url = '$ref'";
mysql_query($query2); 
}
}
?>
 
Also zunächst einmal solltest du an Stelle von $HTTP_REFERER, $_SERVER['HTTP_REFERER'] nutzen. Nähere Infos dazu findest du unter der Kategorie "register_globals off ab PHP 4.2.0".

Der Rest ist eigentlich simples String-Handling
PHP:
$ref = $_SERVER['HTTP_REFERER'];

$ref = str_replace("//","||",$ref) //Ersetzen des // hinter http: damit die / im nächsten Schritt nicht verloren gehen.
$ref = explode("/",$ref);
$ref = str_replace("||","//",$ref[0]); //Und zurückersetzen.

echo $ref;
Sollte eigentlich das wesentliche bei rauskommen oder ?
 
hallo,

nun erhalte ich beim Aufrufen der datei einen Pare Error Fehlermeldung für diese Zeile:

PHP:
$ref = explode("/",$ref);

weisst du da vielleicht bescheid?
 
Ein Parse-Error sagt einem aber in der Regel etwas mehr als nur "Parse Error". Zeig mal bitte die ganze Fehlermeldung.
Ich dachte zuerst er hätte Probleme mit dem / als Trennzeichen, aber das ist nicht der Fall.
PHP:
<?php
$string = "eins/zwei/drei/vier/fünf";
$string = explode("/",$string);
var_dump($string);
?>
Liefert absolut korrekte Ergebnisse.
 
Hallo,

hattest Recht, hab in der Eile die ich hatte heute vormittag einen Strichpunkt vergessen!

Sorry, dass ich dich unnötig bemüht habe,
danke
HM
 
Zurück