Каким образом можно передать данные из одной формы одновременно двум скриптам?

Тема в разделе "PHP", создана пользователем casher, 14 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. casher

    casher

    Регистр.:
    24 фев 2008
    Сообщения:
    168
    Симпатии:
    17
    Здравствуйте, есть такой вопрос:
    Каким образом можно передать данные из одной формы одновременно двум скриптам(например: site1.ru/form1.php и site2.ru/form2.php)?
    Причем в site1.ru/form1.php нужно лишь сохранить переданные данные, а в site2.ru/form2.php продолжить работу с юзером ( т.е. остаться в активном окне).
    Изначально данны с формы отправлялись на site2.ru/form2.php. Но появилась необходимость сохранять передаваемые данные, а доступа к site2.ru/form2.php нет.
    Интересует алгоритм и возможно некоторые наброски.
    Спасибо.
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    после заполнения формы с помощью ajax передавать данные на site1.ru/form1.php потом сабмитить форму
     
    casher нравится это.
  3. omega

    omega Создатель

    Регистр.:
    21 янв 2008
    Сообщения:
    30
    Симпатии:
    10
    В задаче как я вижу нужно находясь на site2.ru передать данные site1.ru/form1.php.
    Насколько мне известно запрещено использовать xml - сокеты для передачи данных на другой домен(сайт).
     
    casher нравится это.
  4. casher

    casher

    Регистр.:
    24 фев 2008
    Сообщения:
    168
    Симпатии:
    17
    omega, ситуация несколько другая:
    форма находится на site1.ru и передаёт данные скрипту на site2.ru, и необходимо данные передаваемые формой сохранять на site1.ru.
    + на даный момент, при сабмите формы открывается новая вкладка - site2.ru/form2.php .
     
  5. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    Тогда как уже сказал Sanuch, используйте AJAX, от себя только добавлю ссылку на довольно таки хороший материал по аяксу.
    http://www.ajaxa.net/category/uroki-i-primeryi/
     
    casher нравится это.
  6. Ad1ce

    Ad1ce Постоялец

    Регистр.:
    18 авг 2009
    Сообщения:
    110
    Симпатии:
    25
    Можно сделать чтоб после сабмита формы данные передавались в скрипт на том же сайте, а оттуда уже можно передать и на другой скрипт (курлом, или как нибудь еще).
    Это будет более правильно.
     
    casher нравится это.
  7. omega

    omega Создатель

    Регистр.:
    21 янв 2008
    Сообщения:
    30
    Симпатии:
    10
    Рекомендую использовать либу jquery http://jquery.com/ Почитай эту страничку http://zhogov.ru/stat_62.html
    Добавь что бы при сабмите формы срабатывала функция яваскрипт:
    Код:
    <form ... onsubmit="return sendform();">
    Создай функцию яваскрипт sendform(), которая будет методом например пост передавать данные на site1.ru/form1.php Для этого используй такое:
    Код:
    jQuery.post( url, [data], [callback],[type] )
    , например
    Код:
    jQuery.post("form1.php",{name:"Vasya",password:"12345"});
    Где name, password названия параметров, то что в кавычках соотв их значения. Как получить значения в яваскрипте думаю знаеш, можно использовать тот же jquery:
    Код:
    var name = jQuery("#name_field_id").value;
    В конце функции не забудь вернуть true, чтобы форма отправила данные как и должна на site2.ru/form2.php
     
    casher нравится это.
  8. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    например с курлом, запускать скрипт после получения данных на site1, который отсылает данные на site2
    PHP:
        $url 'http://www.site2.ru/forma.php';
    //POST поля
        
    $fields = array(
                        
    'field1='.urlencode($_POST['field1']),
                        
    'field2='.urlencode($_POST['field2']),
                        
    'field3='.urlencode($_POST['field3']),
                        
    'field4='.urlencode($_POST['field4']),
                        
    'submit=1'
                        
    );

        
    $fields_string implode('&'$fields); 
        
    //open connection
        
    $ch curl_init();
        
        
    //set the url, number of POST vars, POST data
        
    curl_setopt($ch,CURLOPT_URL,$url);
        
    curl_setopt($ch,CURLOPT_POST,count($fields));
        
    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
        
    //execute post
        
    $result curl_exec($ch);
        
    //close connection
        
    curl_close($ch);
     
    casher нравится это.
  9. noneim

    noneim Прохожие

    site1/form.php:
    PHP:
    //save...
    <div style='display:none'>
    <
    form action=site2/form.php id=form1>
    .........
    </
    form>
    </
    div>
    <
    script>
    document.getElementById('form1').submit();
    </script>


     
Статус темы:
Закрыта.