RageNo1
Erfahrenes Mitglied
Hallo ich habe hier ein Script, welches nur vorgegebene Referrer logt bzw. soll.
Ich habe also in der config.php unter $oksites die seiten eingetragen welche gelogt werden dürfen.
Das sieht dann wie folgt aus: $oksites = "domain.com|tutorials.de|heise.de";
Nun werden leider nicht nur z.B. tutorials.de gelogt sondern auch supertutorials.de usw.
Das heisst der logt auch Domains, welche den vorgegebenen Namen beinhalten.
Was muss hier umgestellt werden damit die Seiten genau gleich sein müssen um gelogt zu werden? Also sprich nur tutorials.de und nicht mehr supertutorials.de.
Mfg Ragey
Ich habe also in der config.php unter $oksites die seiten eingetragen welche gelogt werden dürfen.
Das sieht dann wie folgt aus: $oksites = "domain.com|tutorials.de|heise.de";
Nun werden leider nicht nur z.B. tutorials.de gelogt sondern auch supertutorials.de usw.
Das heisst der logt auch Domains, welche den vorgegebenen Namen beinhalten.
Was muss hier umgestellt werden damit die Seiten genau gleich sein müssen um gelogt zu werden? Also sprich nur tutorials.de und nicht mehr supertutorials.de.
PHP:
<?php
if(basename($_SERVER['SCRIPT_NAME'])=='log.php')
{
exit;
}
require_once('config.php');
if($block_head_put&&($_SERVER['REQUEST_METHOD']=='HEAD'||$_SERVER['REQUEST_METHOD']=='PUT'))
{
exit;
}
if(!empty($_SERVER['HTTP_REFERER'])&&preg_match("!$oksites!i",$_SERVER['HTTP_REFERER']))
{
preg_match('!^https?://([a-zA-Z\-_\.0-9]+)!',addslashes(htmlspecialchars($_SERVER['HTTP_REFERER'],ENT_QUOTES)),$ref);
$ref=$ref[1];
if(!empty($ref))
{
$parts=explode('.',$ref);
$size=count($parts);
if($size==2||$size==3&&$parts[1]=='co'&&strlen($parts[2])==2)
{
$ref='www.'.join('.',$parts);
}
elseif($parts[0]!='www'&&$subdomain_sub) // elseif($subdomain_sub)
{
preg_match('!\.([a-zA-Z\-_0-9]+\.[a-zA-Z]+(\.[a-zA-Z]{2})?)$!',$ref,$new);
if(substr_count($subdomain_sub,$new[1]))
$ref='www.'.$new[1];
}
$x_ip=addslashes(trim($_SERVER['HTTP_X_FORWARDED_FOR']));
$c_ip=addslashes(trim($_SERVER['HTTP_CLIENT_IP']));
if(!is_banned())
{
mysql_query("insert into TW_referers (url,hitsout,time,ip,x_ip,c_ip) values ('$ref',0,'".time()."','{$_SERVER['REMOTE_ADDR']}','$x_ip','$c_ip')");
}
}
}
function is_banned()
{
global $ref,$ban_time,$x_ip,$c_ip;
// fix by neonbubble - www.neonbubble.com
$xip=(empty($x_ip))?'x':$x_ip;
$cip=(empty($c_ip))?'x':$c_ip;
$c=mysql_query("select time from TW_referers where (ip='{$_SERVER['REMOTE_ADDR']}' or x_ip='$xip' or c_ip='$cip') and url='$ref' order by id desc limit 1");
$d=mysql_fetch_object($c);
if(is_object($d))
{
if($d->time>time()-($ban_time*60))
return true;
}
return false;
}
?>
Mfg Ragey