![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 11.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem:
Jest sobie strona A (intranetowy serwis firmy). Na stronie tej jest przygotowany przeze mnie formularz. Chcę go wyświetlić na stronie www B (inna domena). Robię to cURL'em tak:
Otrzymuję formularz, ale jak zrobię submit to przekierowuje mnie na zewnętrzny intranetowy serwis, dopiero tam widzę wynik walidacji formularza. Czy da się zrobić tak, żeby wszystko odbywało się na stronie A? Czyli po submicie pozostaję na stronie A, widzę wynik walidacji, po poprawnym submicie widzę stronę "dziękujemy na zgłoszenie". Czyli dokładnie tak, jakbym zrobił to w ramce (nie chcę jednak jej tutaj używać). Chodzi o to, aby za pomocą intranetowego formularza zapisywać bezpośrednio zgłoszenia do bazy z zewnętrznej strony www. Ten post edytował peter222 11.11.2012, 20:47:07 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Odwołaj się bezpośrednio do pliku obsługującego formularz i prześlij po przez curl wymagane dane via POST/GET.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 11.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ten adres http://ip_serwisu/form odwołuje się bezpośrednio do pliku (kontroler codeignitera).
Dane są przesyłane przez POST. Wszystko działa na adresie http://ip_serwisu/form, chodzi o to aby maskując ten adres wywołać ten skrypt z identycznym działaniem na innej domenie (wszystkie 3 kroki: 1. submit formularza, 2. ewentualna walidacja - wyrzucenie błędów, 3. podziękowanie jesli sukces.) W formularzu jako action powinien być jaki adres podany? A może action zostawić puste? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Adres w formularzu powinien wskazywać na akcję, która przeprowadza walidację formularza. Ten sam adres powinien znaleźć się w curlu - jeżeli action formularza jest pusty to adres url wygląda tak http://ip_serwisu/form
Ten post edytował CuteOne 12.11.2012, 09:08:11 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 11.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Adres w formularzu powinien wskazywać na akcję, która przeprowadza walidację formularza. Ten sam adres powinien znaleźć się w curlu - jeżeli action formularza jest pusty to adres url wygląda tak http://ip_serwisu/form No i własnie tak mam. W action jest 'http://ip_serwisu/form' bo ten sam adres obsługuje walidację, ten sam wyświetla stronę "dziękujemy" w zależności od powodzenia walidacji lub nie. Problem w tym, że jeśli w action jest ten adres, to po submicie jestem tam przekierowywany co nie jest pożądanym efektem bo tak jak opisałem chciałbym aby wszystkie akcje wykonały się na serwerze pod domeną A. Dokładnie tak jakby działo się to w ramce. Dlatego pytałem o pole action, czy aby nie musi być tam adres domeny A lub pusty (dzięki czemu byłby zależny od domeny z której został wywołany, jednak cURL musiałby pozwolić na wykonanie wszystkich operacji w obrębie domeny A a to jest moje pytanie, jak to zrobić) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Już rozumiem o co ci chodzi ;P w Twoim wypadku najlepszym rozwiązaniem będzie:
- napisanie identycznego formularza (tylko HTML bez walidacji itp.), do action wstawiasz adres np. http://domenaA.pl/curlsend.php - dane z tego formularza wysyłasz za pomocą curla do właściwego formularza http://ip_serwisu/form - iframe |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 11.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
iFrame odpada dlatego chciałem wszystko cURL'em... tak myślałem, żeby po stronie serwera A zrobić drugi formularz, choć liczyłem że cURL pozwoli w jakiejś konfiguracji na pełną automatyzację
![]() ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:15 |