Делаем скрипт перехода по ссылкам

Делаем скрипт перехода по ссылкам
Итак наша задача записать все данные пользователя который переходит по ссылке через определённый скрипт.
Он будет сохранять IP,браузер,реферер,дату перехода в определённый файл и вывести все переходы на странице smile .

Создадим файл away.php - это будет файл который сохранит данные:

<?php
 $away_get = isset($_GET['to']) ? htmlspecialchars($_GET['to']) : 'http://google.com'; // обработка переменной
 if(isset($_GET['to'])){
   if(preg_match('~(http://(www.)?[0-9a-z\.\-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\-\~&;_=%:#\+]*)~', $away_get)) //Проверяем параметры на правильность
   {
      $ip = htmlspecialchars($_SERVER['REMOTE_ADDR']);        // IP
      $agent = htmlspecialchars($_SERVER['HTTP_USER_AGENT']); // Браузер
      $ref = htmlspecialchars($_SERVER['HTTP_REFERER']); // Реферер
      $date = date('j M Y в H:i:s');        // Дата
      $file = fopen("logs.txt","a+");       //открываем файл для записи
      fputs ($file, "$ip|$agent|$date|$ref|$away_get\n");  //записуем данные
      fclose ($file);                       //закрываем файл
      header('Location: '.$away_get);       //Перебрасываем пользователя по указаному адресу
   }
   else
   {
    exit('Ошибка параметра <i>$_GET["to"]</i>'); // выводим ошибку
   }
 }
 else
 {
 exit('Не передан параметр <i>$_GET["to"]</i>'); // выводим ошибку
 }
 
 ?>

Создадим файл table.php - вывод данных из logs.txt

<html><body>
 <style>
 .tab {
   border: #ccc 1px solid;
   border-collapse: collapse;
   empty-cells: show;
 }

 .tab td {
   border: #ccc 1px solid;
   padding: 5px;
 }
 </style>
 <h3>Посещения по ссылкам</h3>
 <table class="tab"><tr><td>IP</td><td>Браузер</td><td>Дата</td><td>Реферер</td><td>Cсылка</td></tr><tr>
 <?
 ini_set("max_execution_time",0);

 $file=@file("logs.txt");
 for ($i=0; $i<count($file); $i++) {
   $tt=$file[$i];
   list($ip,$agent,$date,$ref,$url)=explode("|",trim($tt));
   echo '<td>'.$ip.'</td><td>'.$agent.'</td><td>'.$date.'</td><td>'.$ref.'</td><td>'.$url.'</td></tr>';
   }
 ?>
 </table>
 </body></html>

Спасибо за внимание.

Автор: Егор Смоляков

URL: https://visavi.net/articles/250