Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Получение данных через скрипт


Автор: Jubei 9.9.2005, 10:40
Есть форма(не моя) висит в интернете, там выбор 3 селекта (день,месяц,год) и submit кнопка Go, когда выбрана дата и нажата кнопка Go то скриптом выводятся данные за этот день, подскажите идею, как мне через свой скрипт передать данные в эти 3 селекта и запустить тот (не мой) скрип через кнопку, а потом считать данные (ну считать то я примерно знаю как буду делать, а вот как первую часть сделать незнаю ).
Заранее спасибо за помощь!

Автор: -=Ustas=- 9.9.2005, 10:53
Посмотри action формы и названия полей. Делаешь у себя такую же форму, в action-е указываешь тот обработчик. По идее работать должно.

Автор: Jubei 9.9.2005, 11:13
Цитата
Посмотри action формы и названия полей. Делаешь у себя такую же форму, в action-е указываешь тот обработчик. По идее работать должно.

это понятно, но возможно ли сделать без создание у меня формы или как-то, чтобы этой моей формы невидно было ? мой скрип должен залезть туда запустить тот скрип с определенным датами выбраными из селекта немоего скрипта, и сохранить результат (вывод данных) в базе - при этом мой скрипт некому ничего недолжен показывать, во время своего выполнения

Автор: -=Ustas=- 9.9.2005, 11:17
Делай себе форму со скрытими полями, но именем, соответсвующим тому селекту, тогда ее и видно не будет.

Автор: z-END 9.9.2005, 11:24
-=Ustas=- насколько я понял, требуется передать данные методом POST удаленному скрипту без использования Submit

Автор: Jubei 9.9.2005, 11:28
Цитата(z @ 9.9.2005, 11:24)
-=Ustas=- насколько я понял, требуется передать данные методом POST удаленному скрипту без использования Submit

Да, именно так.

Автор: -=Ustas=- 9.9.2005, 11:35
Ну тогда наверное заголовками отправлять.

Автор: Jubei 9.9.2005, 13:52
а можно примерчик какой-нибудь, а то гугл мне совсем нехочет помогать smile

Автор: -=Ustas=- 9.9.2005, 14:10
Я щас посидел, что-то с заголовками много мороки получается. Попробуй через cUrl таким образом (если есть поддержка данной библиотеки):
Код

$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://www.site_for_post_data.ru/script.php/');
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 3); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'var_1='.$var_1.'&var_2='.$var_2.'&var_3='.$var_3);
$result = curl_exec($ch); 
curl_close($ch);

echo $result;

Автор: -=Ustas=- 9.9.2005, 14:23
А это вариант с заголовками:
Код

<?php

$hostname = "localhost";
$path     = "/test2/handler.php"; // Аккуратнее с именами и путями
$line     = "";
// Устанавливаем соединение, имя которого
// передано в параметре $hostname
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
// Проверяем успешность установки соединения
if (!$fp) {
    echo "Неудачно!\n";
} else {
    // Формируем данные HTTP-запроса
    $data = "var_1=".urlencode($var_1)."&var_2=".urlencode($var_2)."\r\n\r\n";
    // Формируем собсна сами заголовки HTTP-запроса
    $headers  = "POST $path HTTP/1.1\r\n";
    $headers .= "Host: $hostname\r\n";
    $headers .= "Content-type: application/x-www-form-urlencoded\r\n";
    $headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
    // Пытаемся отправить HTTP-запрос серверу
    fwrite($fp, $headers.$data);
    // Получаем ответ
    while (!feof($fp)) {
        $line .= fgets($fp, 1024);
    }
    fclose($fp);
}


echo $line;

?>

Автор: lina 10.9.2005, 09:44
Еще можно попробовать просто сохранить форму на комп и если в обработчике нет проверки на поле хедера Referer, то может сработать :-)

Автор: -=Ustas=- 10.9.2005, 10:26
Цитата(lina @ 10.9.2005, 09:44)
Еще можно попробовать просто сохранить форму на комп и если в обработчике нет проверки на поле хедера Referer, то может сработать :-)

Речь идет о том, чтоб вобще формы небыло.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)