Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przesyłanie danych z formularza
Forum PHP.pl > Forum > Przedszkole
kuba554
Witam,
Jestem początkujący i mam pewień problem z formularzem. Napisałem fukcje która sprawdza nr pesel. Fukcja dostaje nr pesel z formularza, wszystko działa dobrze ale chciałbym żeby dane po sprawdzeniu peselu zostaly dalej przekazane metoda post do adresu url. Czy jest jakaś fukcja która to wykonuje albo pomysł jak to zrobić?

Z góry dziękuje i pozdrawiam.
Kshyhoo
Przenoszę do Przedszkola.
nospor
Cytat
le chciałbym żeby dane po sprawdzeniu peselu zostaly dalej przekazane metoda post do adresu url
Czyli po wyslaniu forma i odebrania go w php i sprawdzeniu PESEL chcesz ten pesel wyslac na zewnetrzna strone postem? No to cURL

Jesli chodzi ci o cos innego, to napisz bardziej zrozumiale
kuba554
Jak mam formularz z imieniem, nazwiskiem, peselem itd. chce żeby pesel był tylko odebrany przez php sprawdzony i wszystkie razem dane wysłane do strony URL.
Ps. co to jest cURL?
nospor
Dalej nie kumam o co ci chodzi. Wszystko chcesz robic na wlasnej stronie? No to jaki problem? Wysylasz forma, sprawdzasz poprawnosc danych i robisz co chcesz.
Do innej strony? No to pisalem: cURL
http://pl1.php.net/manual/en/book.curl.php
kuba554
Ok, a czy jest jakaś inna metoda wysłania danych(peselu) do kodu php oprócz <from action="fukcja.php">?
nospor
ajax
in5ane
Nie wiem, co Ty chcesz dokładnie zrobić, ale skoro nie możesz sobie poradzić ze zwykłym formularzem, to AJAX na pewno dla Ciebie odpada. Przy użyciu PHP robisz to tak:
  1. <form method="post" action="script.php">
  2. Imię: <input type="text" name="imie" /><br />
  3. Nazwisko: <input type="text" name="nazwisko" /><br />
  4. PESEL: <input type="text" name="pesel" /><br />
  5. <input type="submit" value="Wyślij" />
  6. </form>
  1. <?php
  2. if ($_POST)
  3. {
  4. $imie = $_POST['imie'];
  5. $nazwisko = $_POST['nazwisko'];
  6. $pesel = $_POST['pesel'];
  7. // w tym momencie masz już wszystkie dane z formularza zapisane w zwykłych zmiennych i możesz z nimi zrobić cokolwiek chcesz (dodać do bazy, wysłać na e-maila itp.)
  8. }
  9. else
  10. {
  11. echo 'Formularz nie został wysłany';
  12. }
kuba554
Ok z tym problem co miałem poradziłem już sobie ale niestety pojawił się nastepny, otóż dane z formularza przechodzą do innej strony url dopiero po dwukrotnym kliknięciu(chciałbym żeby dane przechodziły po jednym kliknięciu). Wklejam kawałek kodu żeby to troche było jaśniejsze:

if ((substr($spr, 0, 1)) == $kontrolka)
{
print "<form action=\"https://ssl.dotpay.pl/?pid=I32S47TVNRC6GXCQRN75JNWAI3QWYSSI\" method=\"post\">";
}
else $blad.='Niepoprawny nr PESEL<br>';
in5ane
Po takim kawałku kodu nie oczekuj, że ktoś poda Ci rozwiązanie. Poza tym używaj znaczników bbcode, a konkretnie [php].
kuba554
  1. <?php
  2.  
  3. function info($s,$kolor)
  4. {
  5. echo ('<div align="center"><p style="color:'.$kolor.'">'.$s.'</p></div>');
  6. }
  7.  
  8. if (isset($_POST['pesel']))
  9. {
  10. $spr = 0;
  11. $blad='';
  12. $suma = 0;
  13. $tab = array (1, 3, 7, 9, 1, 3, 7, 9, 1, 3);
  14.  
  15. if(strlen($_POST['pesel'])<11 || strlen($_POST['pesel'])>11) $blad.='Wprowadzono nieprawidlowa dlugosc nr PESEL<br>';
  16. if(!is_numeric($_POST['pesel'])) $blad.='Niepoprawne znaki w nr PESEL<br>';
  17.  
  18. for ($i=0; $i < 10; $i++)
  19. {
  20. $suma = $suma + (substr(($_POST['pesel']), $i, 1) * $tab[$i]);
  21. }
  22. $kontrolka = substr(($_POST['pesel']), 10, 1);
  23. $spr = 10 - ($suma % 10);
  24.  
  25. if ((substr($spr, 0, 1)) == $kontrolka)
  26. {
  27. print "<form action=\"https://ssl.dotpay.pl/?pid=I32S47TVNRC6GXCQRN75JNWAI3QWYSSI\" method=\"post\">";
  28. }
  29. else $blad.='Niepoprawny nr PESEL<br>';
  30. if ($blad!='') info($blad, 'red');
  31. }//if isset
  32. ?>
in5ane
I ostatecznie, co Ci tutaj nie działa? Normalnie jeśli istnieje $_POST['pesel'], to powinien się kod wykonać.
kuba554
Kod się wykonuje tylko że po wykonaniu powinna się uruchomić strona dotpay. Uruchamia się ale dopiero za drugim kliknięciem.
Turson
header
kuba554
header działa tylko że nie przenosi danych z formularza.
Szymas
W header możesz zawsze użyć do przekazania danych tablicy $_GET. Jak podajesz adres w header to powinien on wtedy wyglądać tak:
  1. header("Location: www.example.com/page.php?zmienna=wartosc&zmienna2=wartosc2")
kuba554
Nie chiałbym przekazywac tego w $_GET ponieważ troche tych danych jest. Dziwne, troche bo wczesniej ta metoda mi dzialala ale nie mialem tak rozbudowanej funkcji jeszcze. Może ta funkcja jest przeladawana albo co?
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.