Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Jak przesłać dane z formularza POST na stronę na serwerze zewnętrznym i jednocześnie zapisać te dane do bazy danych
maraska
post 21.12.2017, 13:05:02
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Musze wysłać metodą POST dane z formularza na serwer zewnętrzny i jednocześnie zapisać je do lokalnej bazy danych.
Próbuję za pomocą ONSUBIT ale mi to nie działa a konkretnie:
Bez warunku ISSET działa ale zapisuje do bazy już w momencie wywołania formularza a nie dopiero po SUBMIT.
Z warunkiem nie zapisuje.

  1. <form name="do_platnosci" method="POST" action="https://ssl.dotpay.eu" onsubmit="<?php
  2. if(isset($_POST['submit'])) {
  3. $www = $_POST['www'];
  4. $sql2 = mysql_query("UPDATE baza SET www= '$www' WHERE ......");
  5. }
  6. ?>">


Proszę kolegów o pomoc
Go to the top of the page
+Quote Post
nospor
post 21.12.2017, 13:07:55
Post #2





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




Widze nie zdqajesz sobie sprawy, ze php wykona sie wpierw a dopiero potem pojdzie twoj formularz do przegladarki...

Formularz masz wysylac nie do dotpay, tylko wpierw do siebie do skryptu, ktory to zapisze co ma zapisac w bazie, a potem ten sam skrypt przy pomocy curl wyswle co masz wyslac do dotpay

ps: przeciez na stronie dotpay masz pelno przykladow jak to robic


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
maraska
post 26.12.2017, 12:35:02
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Chciałem to zrobić za pomocą javascript ale mi ten skrypt nie działa i nie wiem czemu.
Może ktoś dostrzeże błąd.
Dla czytelności wywaliłem większość inputów.
W pliku action1.php dla testów nie robi teraz nic.
Kliknięcie w button nie daje żadnego skutku. Nie przenosi do dotpaya czyli javascript się nie wykonuje.

  1. <form id='do_platnosci' name='do_platnosci' method='POST' action=''/>
  2. <input type='hidden' name='submitted' id='submitted' value='1'/>
  3.  
  4. <input type="text" name="www" value="http://" style="margin:8px 0px 0px 20px;width:400px; height:40px; font-weight: bold; font: 16pt Arial;" />
  5. <input type='button' name='submit' value='submit' onclick='java script: return SubmitForm()' />
  6. </form>
  7. <script type='text/javascript'>
  8.  
  9. function SubmitForm()
  10. {
  11. if(document.forms['do_platnosci'].onsubmit())
  12. {
  13. document.forms['do_platnosci'].action='action1.php';
  14.  
  15. document.forms['do_platnosci'].submit();
  16.  
  17. document.forms['do_platnosci'].action='https://ssl.dotpay.eu';
  18.  
  19. document.forms['do_platnosci'].submit();
  20.  
  21. }
  22. return true;
  23. }
  24. </script>
Go to the top of the page
+Quote Post
trzczy
post 26.12.2017, 15:52:48
Post #4





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Czy parser wchodzi do ifa, jak sie kliknie submit?
Go to the top of the page
+Quote Post
maraska
post 26.12.2017, 16:20:53
Post #5





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Cytat(trzczy @ 26.12.2017, 15:52:48 ) *
Czy parser wchodzi do ifa, jak sie kliknie submit?

Dzięki za zainteresowanie tematem.
Jak to sprawdzić?
Wydaje mi się, że nie, bo nie dzieje się kompletnie nic. Strona nie przeładowuje się.
Go to the top of the page
+Quote Post
trzczy
post 26.12.2017, 18:00:55
Post #6





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Wstaw do ifa funkcję:
  1. console.log('ok');

i zobacz w konsoli, czy wyświetli się 'ok'
Go to the top of the page
+Quote Post
maraska
post 26.12.2017, 18:28:37
Post #7





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Konsola pokazuje

  1. TypeError: document.forms.do_platnosci.onsubmit is not a function

Go to the top of the page
+Quote Post
trzczy
post 26.12.2017, 19:20:36
Post #8





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Ten warunek w ifie jest chyba niepotrzebny, bo jak ktoś klika na submit, to wiadomo, że jest kliknięty submit. Poza tym chyba nie ma takiej funkcji onsubmit dla formularza.

Więc niech to wszystko działa bezwarunkowo, czyli nie w funkcji if.

Po drugie input nie może mieć atrybutu name o wartości 'submit'. Zmień na 'submit2'
Go to the top of the page
+Quote Post
maraska
post 26.12.2017, 23:49:01
Post #9





Grupa: Zarejestrowani
Postów: 143
Pomógł: 0
Dołączył: 9.04.2013

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


Wow! Przy usunięciu warunku zadziałało tak jak trzeba.
Dla potrzebujących:
Zmieniając początkowy skrypt zgodnie z dalszymi wskazówkami możecie w pliku action1.php dodać co chcecie do bazy danych a potem przesłać użytkownika w sposób dla niego niezauważalny do płatności dotpay czy innych płatności obsługiwanych przez POST.
Można mnożyć w javascript dowolną ilość stron wewnętrznych (acttion2.php... actionN.php) i robić w nich cokolwiek w php.
Go to the top of the page
+Quote Post
nospor
post 27.12.2017, 18:37:09
Post #10





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




Cytat
Można mnożyć w javascript dowolną ilość stron wewnętrznych (acttion2.php... actionN.php) i robić w nich cokolwiek w php.

Teraz to ci dziala tylko i wylacznie jakims niewyjasnionym fartem. Poprawna metode napisalem ci w moim pierwszym poscie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 21.05.2024 - 18:05