За последние 24 часа нас посетил 18151 программист и 1599 роботов. Сейчас ищут 889 программистов ...

Отправка form сразу нескольким скриптам

Тема в разделе "PHP для новичков", создана пользователем 2m0rr0w2, 15 ноя 2008.

  1. 2m0rr0w2

    2m0rr0w2 Активный пользователь

    С нами с:
    5 апр 2008
    Сообщения:
    14
    Симпатии:
    0
    Собственно сабж.
    Как сделать так чтоб одним нажатием форма отправлялась сразу в несколько мест.
    То есть <form action="some.php"
    Допустим я хочу эти же данные послать и на some2.php и на some3.php
    ?
     
  2. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    а никак... тупо может и можно с фреймами...

    вопрос: зачем?
     
  3. 2m0rr0w2

    2m0rr0w2 Активный пользователь

    С нами с:
    5 апр 2008
    Сообщения:
    14
    Симпатии:
    0
    чтобы автоматизировать отправку данных.
    Не может быть ни как, ведь так много сервисов где одним нажатием отправляешь например объявление на много досок или ищешь в нескольких поисковиках и.т.д.
     
  4. 2m0rr0w2

    2m0rr0w2 Активный пользователь

    С нами с:
    5 апр 2008
    Сообщения:
    14
    Симпатии:
    0
    Можно упростить вопрос.
    Как отправить данные кроме нажатия на кнопку Submit?
     
  5. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    2m0rr0w2 )) это реализуется по-другому...

    Если ты так уж хочешь, то отправляй все на some.php

    подключай через include() - include('some2.php') и include('some3.php'), и делай в них обработку...

    ЗАЧЕМ СЛАТЬ В 3 СКРИПТА??? Приведи пример
     
  6. 2m0rr0w2

    2m0rr0w2 Активный пользователь

    С нами с:
    5 апр 2008
    Сообщения:
    14
    Симпатии:
    0
    Я хочу одним нажатием заполнить одинаковые формы на нескольких сайтах.
    Понятно что на своем сервере смысла в этом нет.
     
  7. free-bits

    free-bits Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    данные же остаются в $_POST. Можно Редиректить скрипты по очереди, и извлекать данные из массива в каждом из них=)
     
  8. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Уже бл* какой раз пишу!
    делать всё в одном скрипте!
    или include
     
  9. free-bits

    free-bits Активный пользователь

    С нами с:
    13 ноя 2008
    Сообщения:
    296
    Симпатии:
    0
    Адрес:
    г. Красноярск
    Беру свой пост назад=)
     
  10. sylex

    sylex Активный пользователь

    С нами с:
    9 ноя 2008
    Сообщения:
    625
    Симпатии:
    0
    Адрес:
    Омск
    это совсем другая задача... отослать данные на ДРУГИЕ САЙТЫ... Чаще всего организуют через Curl:

    http://phpclub.ru/detail/article/curl

    Читай, изучай :)
     
  11. Adamant

    Adamant Активный пользователь

    С нами с:
    8 апр 2007
    Сообщения:
    234
    Симпатии:
    0
    Адрес:
    Казахстан г.Тараз
    Вопрос понравился и я решил наскоро набросать скриптик (именно на сокетах, потому как лично мне использовать cURL проще и удобнее), конечно получилось по-дилетански, но все же при желании его можно дополнить(переделать).
    HTML:
    1.  
    2. <form action="send_data.php" method="post">
    3.   Login:
    4.   <br />
    5.   <input type="text" name="text">
    6.   <br />
    7.   Password:
    8.   <br />
    9.   <input type="password" name="password">
    10.   <input type="hidden" name="hidden" value="secret">
    11.   <br />
    12.   Level
    13.   <select name="select">
    14.     <option value="1"> 1
    15.     <option value="2"> 2
    16.     <option value="3"> 3
    17.     <option value="4"> 4
    18.   </select>
    19.   &nbsp;
    20.   <input type="submit" value="Submit">
    21. </form>
    22.  
    send_data.php

    PHP:
    1.  
    2. <?php
    3. // передаем POST данные из формы на 1-й сервер
    4. $redirect_data = new SocetsSentData('http://first.ru/page.php');
    5. echo $redirect_data->request($_POST); // на всякий случай смотрим возвращаемый результат
    6.  
    7. // передаем POST данные из формы на 2-й сервер
    8. $redirect_data = new SocetsSentData('http://second.ru/page.php');
    9. echo $redirect_data->request($_POST);
    10.  
    11. // передаем POST данные из формы на 3-й сервер
    12. $redirect_data = new SocetsSentData('http://third.ru/page.php');
    13. echo $redirect_data->request($_POST);
    14.  
    15.  
    16. class SocetsSentData
    17. {
    18.     public $port    = 80;
    19.     public $timeout = 30;
    20.     public $user_agent = 'Opera/9.62 (Windows NT 5.1; U; ru)';
    21.  
    22.     private $output_url;
    23.     private $request;
    24.     private $result;
    25.     private $data;
    26.  
    27.    
    28.     function __construct($output_url) {
    29.         $this->output_url = $output_url;
    30.     }
    31.     /**
    32.     *   функция делает запрос серверу
    33.     *  
    34.     *   @param  mixt - входящие данные
    35.     *   @return mixt - возвращает ответ сервера
    36.     */
    37.     public function request($input_data)
    38.     {
    39.         // разделяем входящие данные на массив ключей и массив значений
    40.         $post_arr_keys   = array_keys($input_data);
    41.         $post_arr_values = array_values($input_data);
    42.  
    43.         // получаем имя хоста
    44.         $parse_url = parse_url($this->output_url);
    45.  
    46.         if (!isset($parse_url['path'])) {
    47.            $parse_url['path'] = '/';
    48.         }
    49.  
    50.         $hostname  = $parse_url['host'];
    51.         $file_path = $parse_url['path'];
    52.      
    53.         $fp = fsockopen($hostname, $this->port, $errno, $errstr, $this->timeout);
    54.         if (!$fp) {
    55.             echo "Не могу открыть сокет с $hostname: <b>$errno $errstr</b>";
    56.             return false;
    57.         }
    58.  
    59.         //    формируем строку с данными
    60.         // составление посылаемых данных и их "urlen-кодирование"
    61.         for ($i = 0; $i < sizeof($post_arr_keys) - 1; $i++) {
    62.             $this->data .= $post_arr_keys[$i] . "=" . urlencode($post_arr_values[$i]) . "&";
    63.         }
    64.         $this->data .= $post_arr_keys[$i] . "=" . urlencode($post_arr_values[$i]);
    65.  
    66.         // длина данных
    67.         $strlen = strlen($this->data);
    68.  
    69.         // Заголовки запроса к серверу
    70.         $this->request =
    71.                 'POST '  . $file_path . ' HTTP/1.1'               . "\r\n" .
    72.                 'Host: ' . $hostname                              . "\r\n" .
    73.                 'User-Agent: ' .  $this->user_agent               . "\r\n" .
    74.                 'Cache-Control: no-cache, must-revalidate'        . "\r\n" .
    75.                 'Pragma: no-cache'                                . "\r\n" .
    76.                 'Content-Type: application/x-www-form-urlencoded' . "\r\n" .
    77.                 'Content-Length: ' . $strlen                      . "\r\n" .
    78.                 'Connection: close'                               . "\r\n\r\n" .
    79.                 $this->data;
    80.        
    81.         //        подача запроса
    82.         fputs($fp, $this->request);
    83.  
    84.         // принимаем ответ сервера
    85.         $this->result = '';
    86.         while(!feof($fp)) {
    87.             $this->result .= fgets($fp);
    88.         }
    89.         fclose($fp);
    90.  
    91.         return $this->result;
    92.     }
    93. }
    94. ?>
    95.  
    ЗЫ. В ООП я профан (только начал осваивать), сначала я написал структурно, но все же классы это просто красиво.
    [​IMG]
     
  12. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Автоматизация постинга спама.