Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak przesłać dane z formularza POST na stronę na serwerze zewnętrznym i jednocześnie zapisać te dane do bazy danych
Forum PHP.pl > Forum > Przedszkole
maraska
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
nospor
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
maraska
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>
trzczy
Czy parser wchodzi do ifa, jak sie kliknie submit?
maraska
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ę.
trzczy
Wstaw do ifa funkcję:
  1. console.log('ok');

i zobacz w konsoli, czy wyświetli się 'ok'
maraska
Konsola pokazuje

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

trzczy
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'
maraska
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.
nospor
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.
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.