<MyRusakov.ru />

Программирование на C++ в Unreal Engine 5

Программирование на C++ в Unreal Engine 5

Данный курс научит Вас созданию игр на C++ в Unreal Engine 5. Курс состоит из 12 разделов, в которых Вас ждёт теория и практика. Причём, в качестве практики будет создан весьма крупный проект объёмом свыше 5000 строк качественного кода, который уже на практике познакомит Вас с принципами создания игр на C++ в Unreal Engine 5.

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

Помимо самого курса Вас ждёт ещё и очень ценный Бонус: «Тестирование Unreal-проектов на Python», в рамках которого Вы научитесь писать очень полезные тесты для тестирования самых разных аспектов разработки игр.

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

Подписавшись по 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://"имя вашей папки"/"имя вашего файла-приёмника"'.

Ответить

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