Код скрипта:
if ($ngee==1) {
header("Content-Type: application/doc");
header("Content-Disposition: attachment; filename=Commercial_proposal_on_advertising.doc");
print file_get_contents("http://www.motrw.com/files/Commercial_proposal_on_advertising.doc");
$file=fopen("file-1.txt","a+"); //file-1.txt - это имя файла, в котором будет храниться статистика закачек
flock($file,LOCK_EX);
$count=fread($file,100);
$count++;
ftruncate($file,0);
fwrite($file,$count);
flock($file,LOCK_UN);
fclose($file);
}
Вызывается скрипт следующим образом:
<a href="http://www.motrw.com/files/counter.php?ngee=1">Коммерческое предложение</a>
Вывод статистика такой:
<table cellpadding="10px" cellspacing="2px">
<tr>
<th>Файл</th>
<th>Количество обращений</th>
</tr>
<tr>
<td class="l1">Коммерческое предложение</td>
<td class="r1"><? include("file-1.txt");?></td>
</tr>
</table>
Но теперь есть задача расширить статистику так, чтобы выводилось не только общее количество скачиваний, но и дату/время, IP-адрес, количество скачиваний для одного IP-адреса. Каждый раз, когда происходит переход по ссылке, количество заносится в общее количество и появляется новая строка с данными скачавшего, где и будет дата/время, IP-адрес, количество скачиваний. Если один раз по данному IP уже было скачано - добавляется счетчик в имеющуюся строку и, соответственно в общее количество добавляется "1". Как это правильно называется. Вывод хитов, хинтов или логов или еще как-то, я толком не знаю. Каким образом это нужно реализовать? Возможно ли так сделать без использования MySQL. Можно, даже сделать, что каждый столбец будет выводится в разные файлы для простоты. Формат времени и даты может быть любой, но лучше более понятный.
Выглядеть таблица должна будет, примерно так:
Общее количество скачиваний: 97
Дата, время | IP-адрес | Количество скачиваний
01.01.2016 01:00 | 192.168.5.1 | 3
01.01.2016 01:00 | 192.168.5.1 | 4
01.01.2016 01:00 | 192.168.5.1 | 5
01.01.2016 01:00 | 192.168.5.1 | 12
01.01.2016 01:00 | 192.168.5.1 | 1