Temat: Jak z formularza zapisać dane do 2 baz?

Mam taki problem, ze zastanawiam się, jak dane z formularza zapisac do dwóch baz. Tzn. Chodzi o to, że dane z formularza mam zamiar puścić metoda post do innego skryptu na zewnętrznym serwerze(to standard).

Chciałbym jednak część z tych danych zapisać w jakiejś bazie TXT lub Mysql.

Jak to zrobić przy jednokrotnym wypełnieniu formularza przez nowego użytkownika?

konto usunięte

Temat: Jak z formularza zapisać dane do 2 baz?

Pod formularz podczepiasz swoj skrypt w ktorym robisz zapis do bazy a potem wolasz za pomoca POST-a adres strony z zewnetrznego serwera.

Haslo kluczowe w przypadku php to CURLAdrian Serafin edytował(a) ten post dnia 22.05.10 o godzinie 23:16
Hubert Wesołowski

Hubert Wesołowski Człowiek od krycia
dachów podczas
deszczu (mokrej
roboty).

Temat: Jak z formularza zapisać dane do 2 baz?

jesli pytasz o takie rzeczy, to ciezko bedzie Ci CURLa ogarnac...
jesli masz dostep do skryptu obslugujacego zapytanie POST, to lepiej zmodyfikuj bezposrednio w nim.
Bartosz Raczek

Bartosz Raczek .NET Software
Developer

Temat: Jak z formularza zapisać dane do 2 baz?

Możesz też zrobić AJAX-em wysyłasz request (POST lub GET) do swojego skryptu PHP poprzez JS czekasz na odpowiedz (lub nie), wtedy robisz zwykły form post do skryptu na zewnętrznym serwerze.
I tym sposobem masz informację w 2 miejscach.
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: Jak z formularza zapisać dane do 2 baz?

można to zrobić na wiele sposobów:

Dwa submity:
- tak jak już kolega Bartek pisał, zwykły submit + ajaxowy, masz wtedy dwa submity dla dwóch skryptów.

Obsługa drugiego requesta na koniec pierwszego:
- curl: http://www.php.net/manual/pl/curl.examples-basic.php
- soap: http://www.php.net/manual/pl/book.soap.php
- ftp + cron po stronie drugiego skryptu, żeby sprawdzał czy pojawił się jakiś request "plik".

Chyba najlepsze rozwiązanie to curl, możesz wysłać post do drugiego skryptu dopiero po obsłużeniu żądania w pierwszym (zapisie do db).

Temat: Jak z formularza zapisać dane do 2 baz?

Dzięki za uwagi.

Co prawda nie bawiłem się jeszcze ani curlem, ani ajaxem, ale poszukam i spróbuję coś zrobić. No chyba, że znacie jakieś gotowe rozwiązania, które wystarczy przerobić pod siebie:)

konto usunięte

Temat: Jak z formularza zapisać dane do 2 baz?

a baza nie wpuści połączenia z innego serwera? Nie zawsze musi to być localhost... wtedy zapisujesz dane do lokalnej bazy, i zaraz po tym łączysz się zdalnie z drugą bazą i tam dodajesz.. w zależności, czy tamten serwer na to pozwoli.

konto usunięte

Temat: Jak z formularza zapisać dane do 2 baz?

Jakub Świegot:
a baza nie wpuści połączenia z innego serwera? Nie zawsze musi to być localhost... wtedy zapisujesz dane do lokalnej bazy, i zaraz po tym łączysz się zdalnie z drugą bazą i tam dodajesz.. w zależności, czy tamten serwer na to pozwoli.

dokładnie tak ! Po co gotować wodę na herbatę na patelni skoro jest czajnik ?
W ten sam sposób możesz zrobić zapis do 100 innych baz. Inne metody są przekombinowane.
Artur Świerc

Artur Świerc Programista PHP/Java

Temat: Jak z formularza zapisać dane do 2 baz?

hah, teraz się uśmiałem! Jest to tak oczywiste rozwiązanie, że każdy z nas je pomijał :)
Daniel Częstki

Daniel Częstki senior php developer

Temat: Jak z formularza zapisać dane do 2 baz?

Jakub Świegot:
a baza nie wpuści połączenia z innego serwera? Nie zawsze musi to być localhost... wtedy zapisujesz dane do lokalnej bazy, i zaraz po tym łączysz się zdalnie z drugą bazą i tam dodajesz.. w zależności, czy tamten serwer na to pozwoli.
\
dokładnie i to chcialem zaproponowac :)
Paweł Kalisz

Paweł Kalisz Web & mobile
developer

Temat: Jak z formularza zapisać dane do 2 baz?

Tak jak napisał Jakub, to będzie działało i będzie najlepszym rozwiązaniem, pod warunkiem, że ten drugi serwer dopuści połączenie. Jeśli nie to chyba najrozsądniejszym i moim zdaniem najprostszym rozwiązaniem będzie cURL.

konto usunięte

Temat: Jak z formularza zapisać dane do 2 baz?

heheh, no to jest faktycznie wesołe, ale z drugiej strony, sam pamiętam, jak walczyłem z różnymi problemami nieraz i po cały dzień, a na końcu okazywało się, że rozwiązanie jest banalnie proste :). to jest piękno tego wszystkiego

konto usunięte

Temat: Jak z formularza zapisać dane do 2 baz?

Jakub Świegot:
a baza nie wpuści połączenia z innego serwera? Nie zawsze musi to być localhost... wtedy zapisujesz dane do lokalnej bazy, i zaraz po tym łączysz się zdalnie z drugą bazą i tam dodajesz.. w zależności, czy tamten serwer na to pozwoli.

Z tym że jeśli to są dwa osobne hostingi to oczywiście połączenie "na ten drugi" musi być koniecznie szyfrowane (SSL).
Jakub L.

Jakub L. Programista

Temat: Jak z formularza zapisać dane do 2 baz?

A to: http://php.net/manual/en/function.httprequest-send.php nie zadziała zamiast soapów, curli i ajaksów?
Oczywiście request może się wytimeoutować bo jakkolwiek będzie szedł po sieci, ale to wydaje mi się najprostsze - po drugiej stronie wymagać będzie tylko jakiegoś interfejsu w PHPie co jest chyba najłatwiejsze do osiągnięcia zamiast implementacji SOAP, a będzie odpalany po stronie serwera ładującego dane do jednej z baz, więc dla klienta będzie zupełnie nie widoczne co się dzieje z danymi dalej, oraz nie będzie żadnego ajaksa którego klient będzie mógł sobie wyłączyć albo uruchomić z palca karmiąc drugą bazę z pominięciem pierwszej.

Temat: Jak z formularza zapisać dane do 2 baz?

Dziękuję wam za rady.

Jakubie Twoja rada mogłaby być pomocna, ale ja nie mam hasła do bazy na innym serwerze i nie mam pojęcia jak mam się połączyć potem automatycznie z tamta bazą

Na szczęście przewertowałem nieco internet i znalazłem sobie pomoc dotyczącą CURLa i przetwarzania 2 akcji.

Powiedzcie mi tylko, czy to o to chodziło z tym CURLem?
Muszę sobie wysłać na dane metodą post na plik o nazwie np. wyslane.php który będzie zawierał taki kod.


<?php

$vars='';
foreach ($_POST AS $key => $val) {
$vars.=$key.'='.$val.'&';
}
$vars=substr($vars,0,-1);
$ch = curl_init();
// URL pierwszej akcji
curl_setopt($ch, CURLOPT_URL,'http://xxx.com/responder.php');
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") ); // request as if Firefox
// dodatkowe parametry
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$vars);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$dresult= curl_exec ($ch);
curl_close ($ch);


$ch = curl_init();
// URL drugiego zapytania
curl_setopt($ch, CURLOPT_URL,'https://xyz.com/register.php');
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") ); // request as if Firefox
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$vars);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result= curl_exec ($ch);
curl_close ($ch);
echo $result;

?>

Ten kod powinien spowodować wykonanie skryptu: http://xxx.com/responder.php oraz potem przesłać na https://xyz.com/register.php

Czy ja to dobrze rozumiem i czy to jest to?

konto usunięte

Temat: Jak z formularza zapisać dane do 2 baz?

to trzeba bylo od razu napisac, ze piszesz bota/grabbera/postera i nie masz wjazdu do bazy...
w tym wypadku faktycznie CURL najlepszy. nie wiem dokladnie co chcesz osiagnac, bo z kodu ktory wkleiles nic jasno nie wynika, podejrzewam, ze chcesz z 1 adresu zgrabic jakies tresci, i nastepnie zapostować je na drugi url.
poczytaj manual curl'a, albo jakies teksty/tutoriale w internecie jest tego cala masa i szukanie tutaj odpowiedzi jak to zapostować troche mija sie z celem.

Następna dyskusja:

Jak zapisac dane z php w ac...




Wyślij zaproszenie do