Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysylanie danych POST bez formualrza
Forum PHP.pl > Forum > Przedszkole
Fobb
Mam taki problem, ze nie wiem jak wyslac dane POST bez formularza, ale w taki sposob zeby przekierowalo na ta strone do ktorej przeselam te dane.

Szukalem na forum, znalazlem dokladny opis jak wyslac dane POSTEM do jakiejs strony przy pomocy cURL, ale wtedy co najwyzej moge dostac odpowiedz od tej strony i ja wyswietlic, a tak nie chce.

Skrypt znajduje sie na obcym serwerze i chce zeby tam uzytkownik pozostal.

Dodam, ze chodzi o system platnosci.pl.

Jesli niezbyt jasno sie wyrazilem to chodzi mi po prostu o to co bym mial gdybym mial zwykly formularz z danymi wysylany do zewnetrznego serwera. Ale wtedy uzytkownik musial by kliknac w submita, a tego jednego klika bardzo chcialbym wyeliminowac.

Nie wiem czy jest w opcjach curla jakis paramert, ktory by to umozliwil. Czytalem manuala ale nic nie znalazlem, albo nie ma albo jestem slepy.

Byc moze w ogole strzelam do muchy z armaty i da sie to jakos prosciej zrobic questionmark.gif
Jojo
Nadziałem się kiedyś na podobny problem związany z allpay.pl. Nie znalazłem nic, co mogłoby mi pomóc, w manualu przy cURL. Problem rozwiązałem prosto: zamiast się męczyć przesłałem wszystko co trzeba przez GET, używając do tego funkcji header. Nie wiem jak platnosci.pl, ale allpay akceptuje dane z GETa.
Fobb
Platnosci.pl tez akceptuja GETa, ale pisza wyraznie ze wola z POSTa.

Jest to jakies rozwiazanie, ale nie raz juz sie z tym problemem spotkalem i chcialbym wiedziec jak cos takiego zrobic.

Myslalem tez ze moze da sie jakos przeslac dane POST headerem, ale to jest chyba niemozliwe.
Jojo
Preparując nagłówki możesz zrobić niemal wszystko, ale w tym temacie niestety Ci nie pomogę, bo sam nie mam o tym bladego pojęcia. Poczytaj w dokumentacji protokołu HTTP jak wygląda wysyłanie danych przez POST i może coś wymyślisz... smile.gif
LBO
Biblioteka CURL" title="Zobacz w manualu php" target="_manual.
nasty
Osobiscie nigdy tego nie probowalem ale mysle ze powino sie udac:
sa dwa sposoby
1) Zrob sobie niwidoczny frame i z niego wysylaj POST, i w javascript kotroluj to, jak skonczy przysylanie post to wyswietli mu sie co czcesz.

2)W bibliotece advAJAX jest sposub na wysylanie POST ajaxem i manualne ustalanie co ma zrobic OnSuccess.


--Jak nie bedziesz wiedzial jak to zrobic to daj znac...
yaro
Wystarczyło wpisać w google: post+php i na pierwszym miejscu jest link do tego chyba o co ci chodzi:
http://www.strefaphp.net/artykul12.html
Gość
Dzieki za linki, ale niestety nie chodzi mi o to. Wiekszosc z nich widzialem, bo szukalem na forum, ale wszedzie jest opisane jak wyslac cos postem a pozniej odebrac odebrac to co zwroci docelowy skrypt.
A ja nie chce odbierac tego co zwroci mi strona, tylko przejsc po prostu na ta strone.
Jasniej nie potrafie wytlumaczyc niz pisalem w pierwszym poscie. Chce miec dokladnie taki sam efekt jak bym mial prosty formularz i kliknal submit. Tyle tylko ze chce zeby to sie stalo automatycznie, bez tego klikniecia. cURL z tego co rozumiem nie daje mozliwosci przejscia na docelowa strone. Moge sobie wyslac jakies dane, strona mi zwroci jakas odpowiedz, moge ja wyswietlic sobie ale nie znajduje sie na tej docelowej stronie tylko na wlasnym serwerze we wlasnym skrypcie.

nasty_psycho, ajaxa w ogole nie znam, byc moze to jest to o co mi chodzi, jesli byc mogl napisac prosty skrypt ktory by wysylal jednego inputa postem do innej strony i na niej zostawal to byl bym bardzi wdzieczny
yaro
Nie zabardzo łapie o co chodzi, ale może użyj:
Kod
header("Location: http://www.example.com/");
Fobb
Ale jesli przejde na ta strone headerem to nie bedzie tam dostepnych zmiennych POST.
A to wlasnie mi chodzi.
Headerem moge przekazac co najwyzej zmienne w GET, pomijajac to ze pewnie sie jakos to da zrobic przekazujac naglowki, ale jak to zrobic to nie wiem.

Moze ma ktos jakas zwiezla funkcje lub klase, ktora by przekazywala zmienne post wlasnie przy uzyciu headera?
nasty
http://advajax.anakin.us/index-pl.htm -> tu jest fajny tutorial po polsku i na dole sa przyklady,
Ale minimum javascript jest bardzo mile widziane tongue.gif
Gość
Chyba nie rozumiecie kolegi. Nie pomoge mu, bo szczerze nie mam pojęcia jak, ale chce on osiągnąc efekt, użycia formularza, który wraz z danymi POST przekierowuje ze strony na a na stronę b - bez jego, faktycznego uzycia.
LBO
Chyba nie rozumiecie kolegi. Nie pomoge mu, bo szczerze nie mam pojęcia jak, ale chce on osiągnąc efekt, użycia formularza, który wraz z danymi POST przekierowuje ze strony na a na stronę b - bez jego, faktycznego uzycia.

P.S. Post u góry to mój post, proszę moderatora o usunięcie.
Cysiaczek
Moja teoria:
gdziesz na pewno masz formularz na który musi kliknąć użytkownik. Zatem przekieruj go na stronę w twoim serwisie wraz z twoimi danymi, które chcesz wysłać - nastepnie za pomoca javaScript stworz dynamicznie formularz (z hiddenami) i umieśc w nim dane. Nastepnie zmuś JS'a do automatycznego wysłania forma na inny serwer. Możesz użyc albo header(), albo nawet jeszcze śmieszniej - onload w sekcji body. Pamietaj tylko, żeby w headzie zainicjować budowe forma. uff - nie wiem, czy ktoś to zrozumie, ale to powinno działać...
nasty
Albo jak tak bardzo chcesz zeby user nie klikal to zrob w js zeby submitowal formulaz jak bedzie onBlur, ale wedlug mnie to jest bez sensu.
LBO
Jedynym wyjściem jest header" title="Zobacz w manualu php" target="_manual i odpowiednie spreparowanie nagłówków.
Cysiaczek
Mozna też takt - wysłać iframem info do swojego serwera, zapisać/orsomfing i odeslać polecenie przekierowania do parenta. Proste. smile.gif
LBO
Wydaje mi sie, że uzycie header" title="Zobacz w manualu php" target="_manual jest wyjściem najbezpieczniejszym. Po co polegać na przeglądarce, skoro header jest funkcją natywną php. Zreszta, na nagłowkach opiera się sieć i to jest najwłaściwsze.
Fobb
A potrafi ktos napisac takiego headera, ktory wysle postem jakies dane questionmark.gif
A moze ma ktos taka funkcje questionmark.gif
Bo wskaznik mglistosci specyfikacji http mnie powala ...
jarek_bolo
Odkopuję trochę stary temat, ale mam dokładnie tą samą potrzebę.

Integruję platnosci.pl na stronie w której będzie kilka opcji opłaty wyróżnienia ogłoszenia (ze względu na długość trwania wyróżnienia) i chciał bym najpierw wszystko co się da zrobić u siebie.
Czyli mam formularz z inputami typu radio gdzie wybieram opłatę jak również mam wyświetlone opcje płatności pobrane dla mojego posa dynamicznie.
User ma sobie wybrać co trzeba i nacisnąć wyślij, co go przekieruje jeszcze do mojego serwera, gdzie dopiero buduję odpowiednie zgłoszenie do systemu platnosci.pl

I teraz to co chciał bym osiągnąć to wysłać poprzez cURL, metodą POST, to zgłoszenie, ale jednocześnie przekierować usera na stronę płatności, bo tam musi wykonać dalsze czynności, po czym system platnosci.pl z powrotem przekieruje usera na mój serwer pod skonfigurowane adresy (ok lub error).

Co prawda w innym temacie @Kocurro bodajże podał, że po prostu należy podejść od drugiej strony do problemu. Czyli stworzyć form w którym atrybut action="" od razu będzie kierował do platnosci.pl i stworzy nowa płatność bez weryfikacji czy właściwa kwota jest podana. Platnosci.pl stworzą nową płatność w swoim systemie, po czym wyślą powiadomienie o tym, wtedy dopiero po odebraniu tego powiadomienia używając API platnosci.pl muszę pobrać szczegóły tej płatności i sprawdzić czy zgadza się kwota i jeśli nie to wtedy również korzystając z API anulować płatność.

Pewnie tak to zrobię, ale wciąż ciekawi mnie czy można zrobić cURLem takiego powiedzmy "header('Location: xxx')" tyle, że metodą POST wraz z zmiennymi??
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.