<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

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

Как отправить 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);
  }
?>

Как Вы и догадались, результатом запуска скрипта-источника будет вывод: "http://myrusakov.ru", что вполне логично. А задавали referer мы с помощью опции "CURLOPT_REFERER". Думаю, что здесь всё прозрачно.

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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (1):

VolodinAS VolodinAS 05.04.2014 20:06:41

Добрый день. Вот такой код у меня есть: ---------- if($curl = curl_init()) { // CURL curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); curl_setopt($curl, CURLOPT_REFERER, "http://myrusakov.ru"); curl_setopt($curl, CURLOPT_COOKIE, $COOKIE_STRING); $page = iconv("utf-8", "cp1251", curl_exec($curl)); curl_close($curl); } // CURL ---------- А вот какой ответ я получаю с денвера: ---------- Request URL:http://mysite.ru/foiz/rise.php Request Method:GET Status Code:200 OK Request Headers Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip,deflate,sdch Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Cache-Control:max-age=0 Connection:keep-alive Host:mysite.ru User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36 Response Headers Connection:Keep-Alive Content-Type:text/html; charset=windows-1251 Date:Sat, 05 Apr 2014 16:01:44 GMT Keep-Alive:timeout=5, max=100 Server:Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13 Transfer-Encoding:chunked X-Powered-By:PHP/5.3.13 ---------- Почему в Request Headers не поменялся Host?

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.