RageNo1
Erfahrenes Mitglied
Hallo,
ich habe ein Referrerscript gefunden, welches logischerweise die
Referrer logt und in einer Tabelle (mySQL) speichert.
Ich kann nun festlegen, welche Seiten nicht gelogt werden sollen.
Dies geschieht über die Kennzeichnung $block
In der config.php kann ich die Seiten eintragen (z.B. Google oder dergleichen).
Nun habe ich aber eine andere Vorstellung von dem Script.
Und zwar möchte ich gerne, das nur die Seiten gelogt werden,
welche ich eingetragen habe, z.B. über die Kennzeichnung $block
(kann ich ja dann umbenennen in "allowed" oder so).
Hier nun der Code, das die Referrer logt adrin befindet sich auch die Funktion
mit den Seiten blocken ($block). Diese Funktion müsste umgekehrt werden,
das nur die Seiten gelogt werden welche unter $block festgelegt sind.
Ich hoffe mir kann das jemand zeigen.
ich habe ein Referrerscript gefunden, welches logischerweise die
Referrer logt und in einer Tabelle (mySQL) speichert.
Ich kann nun festlegen, welche Seiten nicht gelogt werden sollen.
Dies geschieht über die Kennzeichnung $block
In der config.php kann ich die Seiten eintragen (z.B. Google oder dergleichen).
Nun habe ich aber eine andere Vorstellung von dem Script.
Und zwar möchte ich gerne, das nur die Seiten gelogt werden,
welche ich eingetragen habe, z.B. über die Kennzeichnung $block
(kann ich ja dann umbenennen in "allowed" oder so).
Hier nun der Code, das die Referrer logt adrin befindet sich auch die Funktion
mit den Seiten blocken ($block). Diese Funktion müsste umgekehrt werden,
das nur die Seiten gelogt werden welche unter $block festgelegt sind.
Ich hoffe mir kann das jemand zeigen.
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("!$block!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;
}
?>