스팸 필터를 이용하여 리퍼러를 보일 때 해당 스팸로그를 보이지 않게 해보았습니다.
/*
만든이 : NoSyu <dongdm@skku.edu>, 2009.08.21
만든 이유 : 스팸 필터를 이용하여 리퍼러 출력시 스팸 로그 보여주지 않기.
소감 : 만든 시간이 2시간 가량이기에 정말 한심한 로직을 가졌음.
*/
function MakeFilterURLList()
{
requireComponent('Textcube.Data.Filter');
$filter = new Filter();
$filtersList = array();
$filtersURLList = array();
if ($filter->open('url', 'pattern'))
{
do
{
$filtersList[] = array(0 => $filter->id, 1 => $filter->pattern);
} while ($filter->shift());
$filter->close();
}
if ($filtersList)
{
foreach ($filtersList as $value)
{
array_push($filtersURLList, $value[1]);
}
}
return $filtersURLList;
} for ($i=0; $i<count($referers); $i++) {
$record = $referers[$i];
if(!CheckRefererUsingFilterURL($filtersURLList, $record['url']))
{
$className = ($j % 2) == 1 ? 'even-line' : 'odd-line';
$className .= ($i == sizeof($referers) - 1) ? ' last-line' : '';
?>
<tr class="<?php echo $className;?> inactive-class" onmouseover="rolloverClass(this, 'over')" onmouseout="rolloverClass(this, 'out')">
<td class="date"><?php echo Timestamp::formatDate($record['referred']);?></td>
<td class="address"><a href="<?php echo misc::escapeJSInAttribute($record['url']);?>" onclick="window.open(this.href); return false;" title="<?php echo htmlspecialchars($record['url']);?>"><?php echo fireEvent('ViewRefererURL', htmlspecialchars(UTF8::lessenAsEm($record['url'], 70)), $record);?></a></td>
</tr>
<?php
$j++;
}
}
?>