<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

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

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

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

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

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

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

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

Отправка POST-запросов в cURL

Отправка POST-запросов в cURL

Вот мы и переходим к самому соку модуля cURL. Эта статья очень важная и знания, которые Вы получите, будут использоваться в cURL чаще всего. Мы с Вами будем говорить об отправке POST-запросов в cURL.

Прежде чем отправлять POST-запросы, необходимо определиться, как это будет происходить и что нам для этого нужно. Нам нужно два файла: источник и приёмник. Соответственно, в источнике мы будем отправлять POST-запрос через cURL на приёмник. Приёмник будет этот запрос обрабатывать, а источник с помощью cURL примет результат этой обработки. Надеюсь, что здесь всё понятно. Теперь о том, что будет отправляться и что будет происходить. Отправляться источником будут два числа. А приёмник будет считать сумму двух чисел, пришедших через POST-запрос. В результате, сумма двух чисел вернётся от приёмника к источнику, а далее мы это число просто распечатаем.

Итак, давайте начнём с кода для файла-приёмника ("receiver.php"):

<?php
  $a = $_POST['a'];
  $b = $_POST['b'];
  echo $a + $b;
?>

Здесь всё очень просто: записываем в переменные $a и $b данные из POST-запроса, а дальше выводим их сумму.

Теперь создадим файл-источник:

<?php
  if( $curl = curl_init() ) {
    curl_setopt($curl, CURLOPT_URL, 'http://mysite.ru/receiver.php');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, "a=4&b=7");
    $out = curl_exec($curl);
    echo $out;
    curl_close($curl);
  }
?>

Опция CURLOPT_POST имеет значение true, что означает, что данные передаются методом POST. А в опции CURLOPT_POSTFIELDS содержится уже строка с передаваемыми данными. Если Вы запустите этот скрипт, то увидите число "11", что и предполагалось (4+7).

Если вдруг Вы не понимаете, что происходит в других строчках кода, то почитайте статью работа с cURL, где подробно описываются все другие операции.

После осмысления этой статьи Вы уже будете обладать очень важными знаниями, которые позволят Вам делать с cURL практически всё, что угодно, и работать в любой области применения cURL.

P.S. Всех дам поздравляю с 8-м марта! Желаю всегда оставаться красивыми, жизнерадостными и иметь рядом с собой достойного мужчину!

P.P.S. Полный курс по PHP и MySQL: http://srs.myrusakov.ru/php

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

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

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

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

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

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

  1. Кнопка:

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

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

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

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

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

kratos92 kratos92 20.10.2011 02:09:37

Спасибо за статью, полезно. Только вопрос: что делать если на странице есть ссылки типа scr=/folder/img.jpg?

Ответить

Admin Admin 20.10.2011 15:31:37

Написать скрипт, которые заменяет относительные пути абсолютными.

Ответить

kratos92 kratos92 20.10.2011 18:01:16

Спасибо, в принципе так и думал, но хотел узнать нет ли встроенного решения у curl.

Ответить

Yuliyul Yuliyul 28.09.2012 23:36:35

А как проверить это в Денвере? задала URL Z:/home/test1.ru/www/res.php - не работает.

Ответить

Admin Admin 29.09.2012 10:30:47

Такая ссылка неправильная. Надо писать test1.ru/res.php

Ответить

Yuliyul Yuliyul 29.09.2012 23:52:12

Спасибо, заработало

Ответить

ArturPanteleev ArturPanteleev 25.11.2012 10:55:03

Не подскажите что делаю не так? Хотел написать простенький скрипт для авторизации на одном сайте, вот он if( $curl = curl_init() ) { curl_setopt($curl,CURLOPT_URL,'http:/primer.php'); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); curl_setopt($curl,CURLOPT_NOBODY,false); curl_setopt($curl,CURLOPT_HEADER,true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, "login=4dd&passwd=df&submit=Вход&remember_me=&check_ip="); $out = curl_exec($curl); echo $out; curl_close($curl); } логин и пароль заведомо неверные, также передел значение кнопки submit+ название двух чекббоксов, которые я оставли неотмеченными поэтому и ничеко не присвоил им. Проблема в том, что на странице не выводится сообщение о неверном пароле, она выглядит так как будто я ничего и не писал. В чем может быть загвоздка?

Ответить

Admin Admin 25.11.2012 10:58:20

Если checkbox не отмечен, то его и передавать не нужно, а вообще на сайтах иногда ставят защиту от таких дел. Например, требуют, чтобы клиентом был браузер, а не какой-то скрипт, требует, чтобы реферер стоял с их формы и ещё много, чего могут придумать. Также все эти сообщения выводят, как правило, из сессий, а в Вашем скрипте сессий нет, поэтому когда появляется страница в браузере, то, разумеется, ничего и не выводится.

Ответить

ArturPanteleev ArturPanteleev 25.11.2012 11:03:57

Спасибо, попробую насчет сессий. Но я вот что не понял: разве в заголовке не должны хранится все параметры то есть данные Post, cookie, session? а то мне выводят вот что. HTTP/1.1 200 OK Server: nginx/1.1.8 Date: Sun, 25 Nov 2012 07:01:39 GMT Content-Type: text/html; charset=windows-1251 Transfer-Encoding: chunked Connection: keep-alive Cache-Control: no-cache, no-store, must-revalidate, max-age=0 Pragma: no-cache Expires: 0 Last-Modified: Sun, 25 Nov 2012 07:01:39 GMT X-UA-Compatible: IE=edge Set-Cookie: user_id=1ej5m1CxwlNVxoX3GHdcAg==; expires=Mon, 25-Nov-13 07:01:39 GMT; domain=(***); path=/ то есть инфа только о coockies, не пойму где посмотреть сессии и request параметры

Ответить

Admin Admin 25.11.2012 11:21:20

Сессии не хранятся в заголовках, они в файлах лежат на сервере. А в cookie только идентификатор, возможно, user_id это он и есть.

Ответить

olga olga 11.10.2013 14:43:49

Отличная статья коротко и понятно! Подскажите,как можно сделать,чтобы передаваемые данные из файла 'источник' в файл 'приемник' обработанные данные не возвращались обратно в файл 'источник'.

Ответить

Admin Admin 11.10.2013 21:21:34

curl_setopt($curl, CURLOPT_RETURNTRANSFER,true) - поставить тут false, тогда ничего возвращаться уже не будет.

Ответить

Pers20120 Pers20120 11.10.2013 23:11:07

Из статьи понял, что в папке сервера лежат 2 файла: файл-источник и файл-приёмник. Файл-приёмник имеет название "receiver.php", а файл- источник - ??? Назвал его «Index.php». Он же и запускается или что-то не так? Спасибо.

Ответить

Admin Admin 12.10.2013 13:16:23

Назвать источник можно как угодно.

Ответить

olga olga 12.10.2013 10:45:29

Приятно писать комментарии, задавать вопросы и знать,что на них всегда ответят! Спасибо,Михаил!

Ответить

olga olga 12.10.2013 11:21:00

Не так вопрос сформулировала. Михаил, очень нужна ваша помощь! Есть файл "index.php", "index_1.php" и "index_2.php". Из файла "index.php" при клике по ссылке подгружается файл "index_1.php" с помощью "fancybox". В "index_1.php" обрабатываются полученные данные,отправляем данные с помощью формы в файл "index_2.php". В файле"index_2.php" обрабатываем данные в зависимости от данных получаем значение и помещаем в переменную $var. Как можно передать значение переменной $var обратно в файл "index.php",чтобы можно было продолжать работать с этой переменной без перезагрузки страницы. Если с помощью сессии ,то после закрытия окна "fancybox",чтобы продолжать работу с $var в файле "index.php" приходится перезагружать страницу. Если с помощью формы,то окно "fancybox" не закрывается. Можно с помощью CURL решить вопрос? Ооочень надеюсь на вашу помощь!

Ответить

Admin Admin 12.10.2013 13:03:56

Да, с помощью cURL можно отправить GET или POST запрос с нужной переменной.

Ответить

olga olga 12.10.2013 13:24:27

Вопрос в том,как это сделать? $url = "http://localhost/autocomplete/index.php"; $post_data = array ( "da" =>$var , ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); curl_setopt($ch, CURLOPT_NOBODY,0); curl_exec($ch); curl_close($ch); Так? Но в этом случаи подгружается файл "index.php"

Ответить

Admin Admin 12.10.2013 13:37:46

Надо в curl_init указать путь к файлу.

Ответить

olga olga 12.10.2013 13:47:58

curl_setopt($ch, CURLOPT_URL, $url) А ,что этого не достаточно? curl_init("http://localhost/autocomplete/index.php"); Никаких изменений не произошло

Ответить

Admin Admin 12.10.2013 23:07:27

Чтобы подгружался другой файл, надо написать в $url другой файл, а не index.php Вы подгружаете этот файл, а потом пишите, что хотели другой файл, а не index.php

Ответить

irin irin 09.04.2014 19:44:41

Все равно возвращаются, только к числу 11 добавляется через пробел число 1, а в файле приемнике в любом случае выводится 0.

Ответить

tr-td table tr-td table 20.05.2014 09:56:30

irin, У меня тоже был ноль, заработало после того, как изменил адрес файла-приёмника в файле-источнике: с 'receiver.php' на 'http://domain/receiver.php' У меня файл лежит в: Z:\home\domain\www\receiver.php То есть нужно указать: 'http://"имя вашей папки"/"имя вашего файла-приёмника"'.

Ответить

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