Referer - это тот адрес, с которого обратился к странице пользователь. Например, Вы переходите из Google на какую-либо страницу, расположенную в выдаче. В этом случае, для страницы referer'ом является Google . Но статья о другом, эта информация была исключительно для пояснения. В прошлой статье я уже писал, что отве...

Как отправить referer через cURL

Referer - это тот адрес, с которого обратился к странице пользователь. Например, Вы переходите из Google на какую-либо страницу, расположенную в выдаче. В этом случае, для страницы referer'ом является Google. Но статья о другом, эта информация была исключительно для пояснения. В прошлой статье я уже писал, что ответ сервера зачастую зависит от cookie, а, точнее, от заголовков, посланных клиентом. Но помимо cookie в заголовки входит множество других параметров, в частности, referer. И очень важно уметь отправлять нужный referer через cURL для тестирования тех скриптов, которые нуждаются в нём.

Мы не будем сейчас придумывать очень сложные задачи, а лучше рассмотрим всё на самом тривиальном примере. От скрипта-источника передаётся referer, а скрипт-приёмник возвращает его. Далее этот ответ принимает скрипт-источник и печатает результат.

Код файла-приёмника очень простой ("script.php"):

<?php
  echo $_SERVER["HTTP_REFERER"];
?>

Теперь нам нужно написать скрипт-источник, который будет отправлять referer через cURL на наш скрипт, написанный выше, а затем получать от него ответ и печатать его.

<?php
  if( $curl = curl_init() ) {
    curl_setopt($curl, CURLOPT_URL, 'http://temp.local/script.php');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);

    curl_setopt($curl, CURLOPT_REFERER, "http://myrusakov.ru");
    $out = curl_exec($curl);
    echo $out;

    curl_close($curl);
  }
?>

Теперь всё-таки о том, где это может пригодиться. Допустим, у Вас на сайте стоит счётчик посещений. И Вы хотите узнать, сколько посетителей приходит из Google. Что для этого нужно? Правильно, подсчитать количество посещений пользователей с referer'ом - Google. И чтобы протестировать такой скрипт вовсе не нужна ссылка, размещённая на Google, а нужно лишь задать referer через cURL и отправить соответствующий запрос на Ваш скрипт.