X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> PHP: Отправка GET-запроса в фоне, без обновления страницы
StarKnight
StarKnight
Topic Starter сообщение 24.11.2011, 22:58; Ответить: StarKnight
Сообщение #1


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

Есть у меня скрипт, который получает данные из формы методом POST. Делает с этими данными разные операции, и в конце - внимание, вопрос - передаёт обработанные данные другому скрипту, который получает значения методом GET.

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

То есть мне из своего скрипта на своём сайте нужно передать переменные на обработку скрипту на другом сайте htps://чужой_сайт.ру/script.php?$чужая_переменная=$ моя_переменная

Возможно ли отправить этот запрос в фоне, то есть не перенаправляя пользователя на чужой_сайт.ру? И как вообще отправить get не из формы, а прямо в самом скрипте?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bum
bum
сообщение 25.11.2011, 1:07; Ответить: bum
Сообщение #2


http://docs.php.net/manual/en/ref.curl.php тебе поможет


--------------------
домены RU/SU/РФ/gTLD(reg.ru, webnames.ru, r01.ru, nic.ru)
с безbumажным и простым как 1,2,3 переоформлением при продаже. Подробности в тех.поддержке.
А так же хостинг и SSL сертификаты.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
disiyndel
disiyndel
сообщение 25.11.2011, 1:19; Ответить: disiyndel
Сообщение #3


http://www.php.su/lessons/?lesson_11
Иногда необходимо библиотеку подключать, если не предустановлена.

Если очень кратко:

<?php
$ch = curl_init('htps://чужой_сайт.ру/script.php?$чужая_переменная=$ моя_переменная');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Возвращаем данные, а не выводим на экран.
$result=curl_exec($ch);
curl_close($ch);
?>


Собственно ответ сайта будет в переменной $result.

Сообщение отредактировал disiyndel - 25.11.2011, 1:20


--------------------
http://heisenbrog.com - только цифры, факты и эксперименты.


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
vadim
vadim
сообщение 25.11.2011, 1:44; Ответить: vadim
Сообщение #4



Правильно. На русском с пояснениями - _http://myrusakov.ru/php-curl-get.html

Сообщение отредактировал vadim - 25.11.2011, 1:44


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 25.11.2011, 1:58; Ответить: x64
Сообщение #5


можно и самому поизгаляться. в этом случае скрипт должен сам сформировать корректный post-запрос и пообщаться с удалённым сервером (в помощью функции fsockopen/fwrite/fgets). учитывая, что post-данные могут передаваться несколькими способами, придётся немножко зарыться в маны. про передаче данных с типом multipart/form-data можно глянуть тут. вторым способом передачи будет формирование строки параметров как при get (a=1&b=2). content-type для данного способа будет application/x-www-form-urlencoded, как оно должно передаваться смотреть тут.

сложно? тогда curl в помощь. всё вышеописанное безобразие он берёт на себя. а попытка написать что-то своё, настолько же универсальное, выльется в кучу потраченного времени.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
StarKnight
StarKnight
Topic Starter сообщение 25.11.2011, 2:56; Ответить: StarKnight
Сообщение #6


Огромное спасибо за ответы? проблема решена! К счастью, curl была установлена, и с этим не пришлось возиться. Мои переменные, как оказалось, тоже подставляются туда очень просто (определено методом научного тыка):

<?php
$send = curl_init('https://чужой_сайт.ру/script.php?чужая_переменная='.$моя_переменная.'&другая_чужая_переменная'.$моя_переменная);
curl_setopt($send, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($send);
curl_close($send);
?>


Будет хорошо, когда яндекс с гуглом будут находить эту тему по фразе передача данных методом GET без формы. Думаю, кому-нибудь ещё пригодится smile.gif Огромное спасибо всем участникам за помощь!

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Сообщение отредактировал StarKnight - 25.11.2011, 2:57
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3291 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1170 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44765 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1856 26.5.2023, 20:48
автор: Mixatraider
Открытая тема (нет новых ответов) Опытный PHP\Python разработчик в поиске интересных задач
6 daikzlex 3360 25.5.2023, 13:55
автор: daikzlex


 



RSS Текстовая версия Сейчас: 29.3.2024, 4:19
Дизайн