Referers loggen
Auteur: remy - 24 januari 2005 - 19:52 - Gekeurd door: Dennisvb - Hits: 5219 - Aantal punten: 2.14 (7 stemmen)
Met dit script kun je achterhalen waar je bezoekers vandaan komen.
De links worden opgeslagen in een logbestandje en kunnen bekeken worden in op een andere pagina.
stats.txt moet wel 0777 geschmod worden.
|
Code: |
Index.php, dus waar gemeten moet worden:
<?php
$bestand = "stats.txt";
$fp = fopen($bestand, "r");
$inhoud = fread($fp, filesize ($bestand));
fclose($fp);
$delen = explode("*", $inhoud);
$referers = explode("+", $delen[0]);
$hits = explode("+", $delen[1]);
if($_SERVER['HTTP_REFERER'] == '') $_SERVER['HTTP_REFERER'] = "URL ingetypt / bookmark"; //als $server.. leeg is, dus ingetypt in titelbalk, dan wordt de waarde 'URL ingetypt / bookmark' meegegeven.
if(strpos($inhoud, $_SERVER['HTTP_REFERER'])) //als de referer al bestaat
{
$arraynummer = array_search(" ".$_SERVER['HTTP_REFERER'], $referers);
for($i = 0; $i < $arraynummer; $i ++) //oude waarden weer invoegen
{
$invoegen.= $hits[$i]."+";
}
$invoegen.= $hits[$arraynummer] + 1; //array $hits[$i] ophogen met 1
$arraynummer = $arraynummer + 1;
for($j = count($hits); $arraynummer < $j; $arraynummer ++ )
{
$invoegen.= "+".$hits[$arraynummer];
}
$fp = fopen($bestand, "w");
fputs($fp,$delen[0]."*".$invoegen);
fclose($fp);
}
else
{
$fp = fopen($bestand, "w");
fputs($fp,$delen[0]." ".$_SERVER['HTTP_REFERER']."+*".$delen[1]."1+");
fclose($fp);
}
?>
<?php $bestand = "stats.txt"; $fp = fopen($bestand, "r"); $referers = explode("+", $delen[0]); if($_SERVER['HTTP_REFERER'] == '') $_SERVER['HTTP_REFERER'] = "URL ingetypt / bookmark"; //als $server.. leeg is, dus ingetypt in titelbalk, dan wordt de waarde 'URL ingetypt / bookmark' meegegeven. if(strpos($inhoud, $_SERVER['HTTP_REFERER'])) //als de referer al bestaat { $arraynummer = array_search(" ".$_SERVER['HTTP_REFERER'], $referers); for($i = 0; $i < $arraynummer; $i ++) //oude waarden weer invoegen { $invoegen.= $hits[$i]."+"; } $invoegen.= $hits[$arraynummer] + 1; //array $hits[$i] ophogen met 1 $arraynummer = $arraynummer + 1; for($j = count($hits); $arraynummer < $j; $arraynummer ++ ) { $invoegen.= "+".$hits[$arraynummer]; } $fp = fopen($bestand, "w"); fputs($fp,$delen[0]."*".$invoegen); } else { $fp = fopen($bestand, "w"); fputs($fp,$delen[0]." ".$_SERVER['HTTP_REFERER']."+*".$delen[1]."1+"); } ?>
stats.php of een andere naam, wat je zelf wilt:
<?php
$bestand = "stats.txt";
$fp = fopen($bestand, "r");
$inhoud = fread($fp, filesize ($bestand));
fclose($fp);
$delen = explode("*", $inhoud);
$referers = explode("+", $delen[0]);
$hits = explode("+", $delen[1]);
if($_GET['q'] == 'referer')
{
echo "<table style=\"border:1px solid #c0c0c0;\" cellpadding=\"2\" cellspacing=\"0\" width=\"30%\" align=\"center\"><tr bgcolor=\"#c0c0c0\"><td colspan=\"3\" align=\"center\">Herkomst</td></tr>";
for($i = 1; $i < count($referers) - 1; $i ++) //lusje om linkt te laen zien, had ook met $hits gemogen.
{
if($i%2){ echo "<tr bgcolor=\"#efefef\">"; }else{ echo "<tr bgcolor=\"#dddddd\">";}
echo "<td<b>".$i."</b></td><td><a href=\"$referers[$i]\" target=\"blank\">".$referers[$i]."</a></td><td>(".$hits[$i].")</td></tr>"; //laat link uit array $referers zien en het bijhorende $hits.
}
}
else
{
$ref = array_sum($hits) - $hits[0]; //waarden van alle array $hits, behalve $hits[0], want dit is de bookmark array
echo "<table style=\"border:1px solid #c0c0c0;\" cellpadding=\"2\" cellspacing=\"0\" width=\"30%\" align=\"center\"><tr bgcolor=\"#c0c0c0\"><td colspan=\"2\" align=\"center\">Herkomst</td></tr><tr bgcolor=\"#efefef\"><td><b>".$referers[0]."</b></td><td>(".$hits[$i].")</td></tr>";
if(isset($hits[2])) echo "<tr bgcolor=\"#dddddd\"><td><a href=\"?q=referer\">via referer ..</a></td><td> (".$ref.")</td></tr>"; //als er referers zijn, geef de link weer
echo "</table>";
}
?>
<?php $bestand = "stats.txt"; $fp = fopen($bestand, "r"); $referers = explode("+", $delen[0]); if($_GET['q'] == 'referer') { echo "<table style=\"border:1px solid #c0c0c0;\" cellpadding=\"2\" cellspacing=\"0\" width=\"30%\" align=\"center\"><tr bgcolor=\"#c0c0c0\"><td colspan=\"3\" align=\"center\">Herkomst</td></tr>"; for($i = 1; $i < count($referers) - 1; $i ++) //lusje om linkt te laen zien, had ook met $hits gemogen. { if($i%2){ echo "<tr bgcolor=\"#efefef\">"; }else{ echo "<tr bgcolor=\"#dddddd\">";} echo "<td<b>".$i."</b></td><td><a href=\"$referers[$i]\" target=\"blank\">".$referers[$i]."</a></td><td>(".$hits[$i].")</td></tr>"; //laat link uit array $referers zien en het bijhorende $hits. } } else { $ref = array_sum($hits) - $hits[0]; //waarden van alle array $hits, behalve $hits[0], want dit is de bookmark array echo "<table style=\"border:1px solid #c0c0c0;\" cellpadding=\"2\" cellspacing=\"0\" width=\"30%\" align=\"center\"><tr bgcolor=\"#c0c0c0\"><td colspan=\"2\" align=\"center\">Herkomst</td></tr><tr bgcolor=\"#efefef\"><td><b>".$referers[0]."</b></td><td>(".$hits[$i].")</td></tr>"; if(isset($hits[2])) echo "<tr bgcolor=\"#dddddd\"><td><a href=\"?q=referer\">via referer ..</a></td><td> (".$ref.")</td></tr>"; //als er referers zijn, geef de link weer } ?>
voorbeeld stats.txt:
URL ingetypt / bookmark+*0+
URL ingetypt / bookmark+*0+
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|