ФорумПрограммированиеPHP для идиотов → График с другого сайта

График с другого сайта

  • Олег

    Сообщения: 177 Репутация: N Группа: Кто попало

    Spritz 3 декабря 2008 г. 20:53

    Как загнать себе на страничку график с другого сайта? Этот сайт могу получить общим путем, загрузив в браузер. Если просмотреть текст странички, то кусок текста выглядит так

    <input type="hidden" name="uid" value="003BACDB-802C-E8F0-E3DBDB47D76C8632">
    <input type="hidden" name="docid" value="460">

    <input type="hidden" name="flag" value="1">
    <td class="gen6">Начальная дата
    <input size="10" class="text_area" type="text" name="sDate" value="01/01/2007">
    Конечная дата

    <input size="10" class="text_area" type="text" name="eDate" value="04/12/2008">
    <hr>
    <input class="butt_green" type="submit" name="OK" value=Показать&nbsp;график>
    <input class="butt_green" type="submit" name="OK2" value=Показать&nbsp;отчет>
    </td></tr></table></td></form></tr>


    Как программным путем заполнить переменные name="sDate", name="eDate" и отправить запрос на сайт. В результате запроса придут данные с графиком, которые хочу вставить в свой сайт, но об этом позже.
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 3 декабря 2008 г. 22:08, спустя 1 час 15 минут 3 секунды

    что за сайт?
    все умрут, а я изумруд
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 3 декабря 2008 г. 22:08, спустя 8 секунд

    не вижу картинки (графика)
    все умрут, а я изумруд
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 3 декабря 2008 г. 22:11, спустя 3 минуты 17 секунд

    curl
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 3 декабря 2008 г. 22:23, спустя 11 минут 43 секунды

    cURL'ом запрашиваете страничку
    и передаете ей два POST параметра sDate и eDate,
    после чего дергаете графики через разбор ответа,
    например через регулярки и/или другие функции работы со строками.

    Подробнее не смогу, так как не понятно где сам код графиков?
    adw/0
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 3 декабря 2008 г. 22:34, спустя 11 минут 4 секунды


    cURL'ом запрашиваете страничку
    и передаете ей два POST параметра sDate и eDate,
    после чего дергаете графики через разбор ответа,
    например через регулярки и/или другие функции работы со строками.

    Подробнее не смогу, так как не понятно где сам код графиков?
    да с чего ты взял, что тут post??
    все умрут, а я изумруд
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 3 декабря 2008 г. 22:52, спустя 17 минут 53 секунды

    да с чего ты взял, что тут post??
    Догадался… Может у него вообще JavaScript там формирует граффики… или Ajax'ом подгружается все…
    adw/0
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 3 декабря 2008 г. 23:11, спустя 19 минут 16 секунд

    вобще логичнее графикам параметры гетом передавать, чтобы давать на них ссылку, но тут что-то не так :)
    все умрут, а я изумруд
  • Олег

    Сообщения: 177 Репутация: N Группа: Кто попало

    Spritz 7 декабря 2008 г. 19:55, спустя 3 дня 20 часов 43 минуты

    Извиняюсь, что потерялся. Вот страничка, если увидите.
    http://www.nationalbank.kz/?docid=460&uid=14C0F54F-802C-E8F0-EBAC0A0D0F1CE05C
    Суть. Страница Национального банка, в ней можно просмотреть курсы валют в графике
    Для этого, в активных окошках нужно поставить птичку выбираемой валюты и период.
    В результате, выходит график.
    Кусок кода выдернул при помощи текстового просмотра страницы.
    Есть мысли прилепить себе на сайт такой график, но нужно выдернуть данные или график целиком. Дайте направление, только плиз не сокращенно, а чтоб найти в поиске операторы.

    cURL'ом запрашиваете страничку
    и передаете ей два POST параметра sDate и eDate,
    после чего дергаете графики через разбор ответа,
    например через регулярки и/или другие функции работы со строками.

    Очень близко для моего понимания, но что за запрос cURL и прочее. Можно маленьким примерчиком.
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 8 декабря 2008 г. 0:07, спустя 4 часа 11 минут 57 секунд

    Люди, а для чего там перед каждым cheked
    <form action="index.cfm" method="post">
    стоит?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 декабря 2008 г. 0:17, спустя 10 минут 13 секунд

    Очень близко для моего понимания, но что за запрос cURL и прочее. Можно маленьким примерчиком.


    В PHP включена поддержка libcurl - библиотеки функций, написанной Daniel Stenberg, которая позволяет взаимодействовать с различными серверами по различным протоколам. В настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file, и ldap. libcurl также умеет работать с сертификатами HTTPS, посылать запросы к HTTP серверам методами POST и PUT, закачивать файлы по протоколам HTTP и FTP (последнее можно сделать также используя модуль FTP), использовать прокси-серверы, cookies и аутентификацию пользователей.


    Мануал http://ru2.php.net/curl
    Пример использования http://pyha.ru/forum/topic/1368.0
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 декабря 2008 г. 0:20, спустя 2 минуты 49 секунд

    Professor, потому что мудаки ;-)
    adw/0
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 8 декабря 2008 г. 0:31, спустя 11 минут 21 секунду

    вот я писал спам бот для бобрдобр
    <?php
    //    bobrdobr.ru спамер. Работает.=)

    //здесь авторизируемся на сайте

    $url = "http://bobrdobr.ru/login/";
    $post="username=login&password=password";
    $ua = 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);    //указываем URL для запроса
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $ua);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_COOKIE, "bobrologin=1");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');

    $result = curl_exec($ch);

    $sess_cookie=substr($result, strpos($result, "sessionid=")+10, 32);

    $post="url=google.ru&name=22&tags=222&description=222&killspammers=$s_hidden";//сформировали строку пост данных состоящую из пар поле=>значение разделенных амперсандом (при необходимости строку надо url-кодировать)

    $url = "http://bobrdobr.ru/new_bookmark.html";
    curl_setopt($ch, CURLOPT_URL, $url);    //указываем URL для запроса
    curl_setopt($ch, CURLOPT_HEADER, 1);  //просим CURL возвращать нам ответ вместе с заголовками (обязательно)
    curl_setopt($ch, CURLOPT_USERAGENT, $ua); //утверждаем что мы браузер чтоб не спалили
    curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //говорим что ответ сервера нам нада возвращать, а не выводить прямо в браузер.

    $result=curl_exec($ch); //выполняем сам запрос, ответ сервера сохраняем в $answer.


    $s_hidden=substr($result, strpos($result, 'name="killspammers" value=')+27, 26);


    $result = curl_exec($ch);

    $post="url=google.ru2&name=22&tags=222&description=222&killspammers=$s_hidden";//сформировали строку пост данных состоящую из пар поле=>значение разделенных амперсандом (при необходимости строку надо url-кодировать)
    curl_setopt($ch, CURLOPT_URL, "http://bobrdobr.ru/new_bookmark.html?next=None&copied="); //адрес на который шлем запрос (выдираем значение из action нашей формы)
    curl_setopt($ch, CURLOPT_HEADER, 1); //дальше мы все уже видели
    curl_setopt($ch, CURLOPT_USERAGENT, $ua);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie); //а вот тут внимательнее! не забываем показать серверу наши, полученные ранее кукисы
    curl_setopt($ch, CURLOPT_POST, 1); //говорим что у нас есть POST данные для сервера
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //указываем на наши POST данные
    $result = curl_exec($ch); //выполняем запрос на сервер


    curl_close($ch);

    echo $result;

    ?>

    С коментариями может где то проблеммы быть(Не люблю писать что то пока идет творческий процесс, НО СТАРАЮСЬ ИСПРАВИТЬСЯ)
    Если что то непонятно спрашивайте.
    И adw0rd, сейчас мне скажет что я плохо POST запрос отправляю=)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 декабря 2008 г. 0:43, спустя 11 минут 39 секунд

    Professor, нормальный код и комментарии нормальные, однако массив для поста не более удобней?))

    //сформировали строку пост данных состоящую из пар поле=>значение разделенных амперсандом (при необходимости строку надо url-кодировать)

    дык кодируй всегда, если юзаешь строку ;-) зачем париться…
    adw/0
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 8 декабря 2008 г. 0:50, спустя 6 минут 52 секунды

    однако массив для поста не более удобней?

    Я незнал что можно массивом =))
    Только недавно вы с phpdudu спорили об этом, вот тогда и узнал))
    дык кодируй всегда, если юзаешь строку ;-) зачем париться…

    На тот момент надо было быстрей быстрей иглавное что бы был результат. А до оптимизации и отладки кода так и недошло =(

Пожалуйста, авторизуйтесь, чтобы написать комментарий!