Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> skrypt jeden formularz - 3 przyciski
rx30001
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 26.10.2013

Ostrzeżenie: (0%)
-----


Witam,

Próbuję zrobić następujący skrypt.

Jest formularz, gdzie podaje się dane np. imię, nazwisko, e-mail, ulica, nr domu, itp.

Teraz mają być 3 przyciski, których naciśnięcie powoduje wysłanie tego formularza przez POST
do 3 róznych stron odbierającyh dane,
czyli klikam 1 przycisk i w nowym oknie otwiera się strona X, która odebrała przez POST dane z formularza,
klikam później przycisk 2 i otwiera się w nowym oknie strona Y...

jak jest <form target="_blank" action="xxx" method="post"> co wstawić w xxx, jeśli strony odwołania są różne?

nie wiem jak podpiąć te przyciski (to pewnie w java script)

Problem jest jeszcze taki, że każda z trzech stron ma inaczej nazwane dane, czyli np. imię, na jednej stronie jest jako name, a na innej imie.

Chyba musi być pośredni skrypt odwołania, który w zależności od przycisku odpowiednio nazywa dane i dopiero je wysyła do odpowiedniej strony.


Proszę o pomoc w rozwiązaniu tego problemu.

Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
404
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

Ostrzeżenie: (0%)
-----


Jeżeli musisz tylko te dane wysłać to zrób to wykorzystując AJAX, będzie najprościej.
Go to the top of the page
+Quote Post
rx30001
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 26.10.2013

Ostrzeżenie: (0%)
-----


Na AJAX w ogóle się nie znam
Go to the top of the page
+Quote Post
404
post
Post #4





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

Ostrzeżenie: (0%)
-----


W takim razie masz świetną okazję żeby się nauczyć: http://api.jquery.com/jQuery.post/. To naprawdę nie jest trudne smile.gif
Go to the top of the page
+Quote Post
jackraymund
post
Post #5





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

Ostrzeżenie: (0%)
-----


ajax acrossdomain? do takich rzeczy to Curl'a
jeżeli chcesz sprawdzić który nacisnąłeś
  1. class Curl{
  2. public $CurlData,$getinfo;
  3. public function GETrequest($link){
  4. $CurlRequest = curl_init(); // run cURL
  5. curl_setopt($CurlRequest, CURLOPT_URL, $link); //set url request
  6. curl_setopt($CurlRequest, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091030 Gentoo Firefox/3.5.4"); // useragent
  7. curl_setopt($CurlRequest, CURLOPT_HTTPHEADER, array("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language: pl,en-us;q=0.7,en;q=0.3", "Connection: keep-alive","Cache-Control: max-age=0","text/html; charset=UTF-8"));
  8. curl_setopt($CurlRequest, CURLOPT_RETURNTRANSFER, 1);
  9. curl_setopt($CurlRequest, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
  10. curl_setopt($CurlRequest, CURLOPT_COOKIEJAR,dirname(__FILE__) . '/cookie.txt');
  11. $this->CurlData = curl_exec($CurlRequest); // run request, return plain html
  12. $this->getinfo = curl_getinfo($CurlRequest); // return array with data like, http_code etc.
  13. curl_close($CurlRequest);
  14. }
  15. public function POSTrequest($link,$post){
  16. $CurlRequest = curl_init();
  17. curl_setopt($CurlRequest, CURLOPT_URL, $link);
  18. curl_setopt($CurlRequest, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091030 Gentoo Firefox/3.5.4"); // useragent
  19. curl_setopt($CurlRequest, CURLOPT_HTTPHEADER, array("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language: pl,en-us;q=0.7,en;q=0.3", "Connection: keep-alive","Content-Type: application/x-www-form-urlencoded; charset=utf-8"));
  20. curl_setopt($CurlRequest, CURLOPT_RETURNTRANSFER, 1);
  21. curl_setopt($CurlRequest, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
  22. curl_setopt($CurlRequest, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
  23. curl_setopt($CurlRequest, CURLOPT_POST, 1); //set request to POST
  24. curl_setopt($CurlRequest, CURLOPT_POSTFIELDS, $post); //add to request post data
  25. $this->CurlData = curl_exec($CurlRequest);
  26. $this->getinfo = curl_getinfo($CurlRequest);
  27. curl_close($CurlRequest);
  28. }
  29. }

dla każdego guzika inna funkcja, action może być index.php
potrzebna ci funkcja POSTrequest, ale daje ci też get jbc.
$link to link gdzie ma wysłać POST'a
$post podajesz w tablicy np.
array = ('name' => 'Jan kowalski');

Ten post edytował jackraymund 27.10.2013, 09:37:07


--------------------
Wykonuje zlecenia na pobieranie danych ze stron i różne boty.
Go to the top of the page
+Quote Post
404
post
Post #6





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

Ostrzeżenie: (0%)
-----


@jackraymund: http://stackoverflow.com/questions/3506208...ax-cross-domain
Go to the top of the page
+Quote Post
utek44
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 21.10.2013
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Nie łatwiej byłoby wykonać taki prosty formularz i umieścić go na jakimś darmowym serwerze ?
Go to the top of the page
+Quote Post
Dejmien_85
post
Post #8





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

Ostrzeżenie: (0%)
-----


Cytat(rx30001 @ 26.10.2013, 13:09:11 ) *
Witam,

Próbuję zrobić następujący skrypt.

Jest formularz, gdzie podaje się dane np. imię, nazwisko, e-mail, ulica, nr domu, itp.

Teraz mają być 3 przyciski, których naciśnięcie powoduje wysłanie tego formularza przez POST
do 3 róznych stron odbierającyh dane,
czyli klikam 1 przycisk i w nowym oknie otwiera się strona X, która odebrała przez POST dane z formularza,
klikam później przycisk 2 i otwiera się w nowym oknie strona Y...

jak jest <form target="_blank" action="xxx" method="post"> co wstawić w xxx, jeśli strony odwołania są różne?

Pozdrawiam smile.gif


Najprostszym rozwiązaniem będzie:

1) Tworzysz formularz, np.:
  1. <form target="_blank" action="akcja.php" method="post">


2) Tworzysz w nim 3 przyciski, każdy z inną nazwą:
  1. <input type="submit" name="opcja1">
  2. <input type="submit" name="opcja2">
  3. <input type="submit" name="opcja3">

3) Następnie w akcja.php sprawdzasz który przycisk został naciśnięty:

  1. if (isset($_POST['opcja1']) {
  2. // Instrukcje dla opcja1
  3. } elseif (isset($_POST['opcja2']) {
  4. // Instrukcje dla opcja2
  5. } elseif (isset($_POST['opcja3']) {
  6. // Instrukcje dla opcja3
  7. }


Przesyłanie danych do stron zewnętrznych w instrukcjach 1-3 możesz zrobić przy pomocy cURL - tak jak pisali o tym wyżej koledzy (zawsze nauczysz się czegoś nowego o PHP!). Alternatywą może być JS (AJAX), jednak to jest forum PHP, także polecam Ci zabawę z cURL. ; )

Ten post edytował Dejmien_85 29.10.2013, 10:44:02
Go to the top of the page
+Quote Post
jackraymund
post
Post #9





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

Ostrzeżenie: (0%)
-----


Cytat(404 @ 27.10.2013, 10:58:29 ) *

Fajny link podałeś, a nie przeczytałeś co tam pisze.
"Jsonp did not support post, put and delete. Your solution works great."
Nie znam jsonp, ale miało sporo like aby uznać to za trafny komentarz.
Dlatego lepiej w curlu to napisać


--------------------
Wykonuje zlecenia na pobieranie danych ze stron i różne boty.
Go to the top of the page
+Quote Post
com
post
Post #10





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

Ostrzeżenie: (0%)
-----


jackraymund

akurat 404 ma rację, a skoro stackoverflow nie przemawia to proszę : http://www.d-mueller.de/blog/cross-domain-ajax-guide/ oczywiście nikt nie broni używać Curl, ale poco robić to po stronie serwera jak można od razu wysłać żądanie gdzie trzeba smile.gif
Go to the top of the page
+Quote Post
jackraymund
post
Post #11





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

Ostrzeżenie: (0%)
-----


Cytat(com @ 29.10.2013, 21:23:14 ) *
jackraymund
akurat 404 ma rację, a skoro stackoverflow nie przemawia to proszę : http://www.d-mueller.de/blog/cross-domain-ajax-guide/ oczywiście nikt nie broni używać Curl, ale po co robić to po stronie serwera jak można od razu wysłać żądanie gdzie trzeba smile.gif

yyy, to samo co na stackoverflowie...
Ale jak mówisz że ma racje, to jak zamierzasz wejść komuś na serwer i edytować pliki, aby akceptowały od twojego serwera posty?
Standardowo większość serwerów odrzuca takie zapytania, więc jak mówisz można od razu wysłać gdzie trzeba, albo się denerwować że nie działa, i przepisywać bota na php.
Sam próbowałem w js'ie napisać bota do youtube i fb. Najpierw spróbuj, potem pisz.

Ten post edytował jackraymund 30.10.2013, 08:09:40


--------------------
Wykonuje zlecenia na pobieranie danych ze stron i różne boty.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:45