O RSnake criou um truque muito interessante para verificar se determinados sites foram visitados por uma pessoa, usando CSS. Os sites que queremos verificar se foram acessados são inseridos como links na página, e o truque consiste em utilizar a:visited e display:. Se o site não foi acessado, será aplicado o atributo a: do CSS, que não exibe nada (display:none). Mas se o site tiver sido visitado, será aplicado a:visited, que utiliza o atributo background: para chamar um script que pode registrar o fato.
Apresento um pequeno script PHP que aplica o truque em uma página.
history_get.php
<?php
// os sites que verificaremos se estao no historico devem ficar nesse arquivo
$sites = @file(’sites.txt’);
if (! $sites )
die;
$numsites = sizeof($sites);
echo ‘<style>’;
for ($i = 0; $i < $numsites; $i++) {
echo “#csshist a:visited span.span$i {
display:block;
background: url(CSS-history.php?id={$sites[$i]});
position:absolute;
top:0;
left:0;
width:0;
}”;
}
echo ‘#csshist a span {
display:none;
}
</style>
<div id=”csshist” align=”left”>’;
for ($i = 0; $i < $numsites; $i++) {
echo “<a href=\”{$sites[$i]}\”>
<span class=\”span$i\”></span></a>”;
}
echo ‘</div>’;
?>
CSS-history.php
<?php
if ( isset ($_GET['id']) ) {
$siteid = $_GET['id'];
$sites = @file_get_contents(’sites.txt’);
$sites = split(“[\r\n]“, $sites);
if ( in_array($siteid, $sites) ) {
$userip = $_SERVER[REMOTE_ADDR];
$useragent = $_SERVER[HTTP_USER_AGENT];
$time = date(DATE_RFC822);
$data = “TIME: $time IP: $userip USERAGENT: $useragent SITE: $siteid \n”;
@file_put_contents(‘csshistory.txt’, $data, FILE_APPEND);
}
}
?>
Uso:
- O arquivo sites.txt deve conter, em cada linha, um endereço a ser verificado no histórico.
- Inclua este código em uma página do seu site. <?php include (’history_get.php’) ?>
- Os endereços existentes em sites.txt que foram acessados pelo usuário serão passados para CSS-history.php, que registrará no arquivo csshistory.txt

ScornInPC said
Muito interessante essa “tatica”. Estou impressionado como a criatividade veio à tona agora.