Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wysyłanie postem
Forum PHP.pl > Forum > Przedszkole
plej
Cześć.
Nie wiem jak wykonac jedną czynność, a mianowicie wysyłam dane z formularza metodą post. Wtedy filtruje dane wyslane formularzem i chciałbym je wysłac znów postem to innego pliku i nie wiem jak to wykonać wole to w php zrobić.

Mogę wysłać getem i dać np. zabezpieczenie takie że w gecie wyśle wszystkie dane połączone i zakodowane np. md5. cos w podobnym stylu jak robi to payu takie dodatkowe zabezpieczenie.
Ale wolałbym postem to wysłac da się jakoś to zrobić? najlepiej bez uzywania js, ajax ?


Pozdrawiam.
Kshyhoo
Napisz sobie funkcję, którą wykonasz w momencie przesyłania danych do pliku docelowego.
Sephirus
Jeśli chcesz wysłać te dane postem na kolejną stronę, którą dodatkowo masz wyświetlić - zawróć - robisz to źle... Wysłanie formularza powinno odbyć się na końcową docelową stronę bez pośredników.


Jeśli chcesz tylko wysłać dane dalej do jakiejś innej strony, której już nie musisz wyświetlać użyj np. CURL.
com
bez ssl post jest tylko złudnie bezpieczniejszy od geta smile.gif tak jak moi przedmówcy powiedzieli, przemyśl dobrze co chcesz otrzymać, bo chyba za bardzo kombinujesz wink.gif
b4rt3kk
A po co chcesz wysyłać jeszcze raz te dane POST-em?
plej
Przykładowo.
Ktoś kupuje produkt w koszyku klika na zapłać. Przekieruje go na podstrone zapłaty. Tam wybiera sposób zapłaty i jeśli nie jest zarejstrowany to musi podać dane. Wtedy te dane chce przefiltrować dodać kilka parametrów i wysłania je dalej... czyli na dany sposób płatności. Wtedy tam wyświetlić dokładnie co i jak i po tym zapisać do bazy odpowiednie dane i w przypadku platnosci payu przekierować na payu.


Ale w sumie mogę odrazu dac na dany sposób płatności i tam przefiltrować dane. Mniej zabawy.


Jednak przekazuje getem ale tylko kilka rzeczy:
- sig ( klucz md5 z zakodowanych danych (imie, nazwisko, sposob zaplaty i kod losowy))
- kod_sig ( losowy kod nie zakodowany, który jest wykorzystywany w powyższym kodzie sig )
- przekazuje jedną zmienną dodatkową ( zeby wiedziec czy to od nie zalogowanego czy zalogowanego ( chociaż słuzy do tego sesja inna. ale nie każdy uzytkownik ma wprowadzone dane w ustawieniach dlatego przekazałem zmienna żeby wiedziec czy odebrac dane czy wybrac z bazy )
- dane imie, nazwisko itp.. przekazuje w sesji i koduje to base64_encode

dla formularza losuje, losowy kod do sprawdzenia czy formularz zostal wysłany ze strony, przekazuje kod losowy w type="hidden" zakodowane w sha1 wtedy sprawdzam czy sie zgadza itd...
  1. if ((@$_POST["send_form"]) && (@$_POST['send_form'] == sha1(@$_SESSION['uniq_kod']))){
  2. // formularz wysłany
  3. }
  4. ?>
  5. <form..... >
  6. <input type="hidden" name="send_form" value="<?php echo sha1(@$_SESSION['uniq_kod']); ?>">

wygląda to niejwięcej tak:
  1. $_SESSION["imie"] = base64_encode($imie);
  2. $_SESSION["nazwisko"] = base64_encode($nazwisko);
  3. $_SESSION["ulica_nr"] = base64_encode($ulica_nr);
  4. $_SESSION["telefon"] = base64_encode($telefon);
  5. $_SESSION["kod_miasto"] = base64_encode($kod_miasto);
  6. $_SESSION["email"] = base64_encode($email);
  7. $sig_kod = uniqid(rand());
  8. $sig = md5($sposob_platnosci.$imie.$nazwisko.$telefon.$sig_kod);
  9. header('Location: platnosc.php?a='.$sposob_platnosci.'&s='.$platnosc.'&sig_k='.$sig_kod.'&zl=n&sig='.$sig);


wtedy w docelowym pliku robie sprawdzanie poprawnosci tzn.:
- sprawdzam czy zalogowany czy nie.
- sprawdzam czy dane w gecie są wysłane.
- sprawdzam czy sesje z danymi istnieja
- koduje sig według powyzszego przykladu i sprawdzam czy sie zgadza z tym wyslanym w gecie

I wszystko działa dobrze. jeden błąd i jest przerwane.

Z góry mówie że to narazie przykłady testy itp.

Wydaje się to trochę skomplikowane bardzo. Ale czy jest bezpieczne?

I co sądzicie o tym całym moim mechanizmie ktory konstrułuje?
Jestem zdanie że lepiej coś samemu zbudować niż kopiować. Dlatego krytyka mile widziana. Nie wszystko wie się odrazu. Trzeba trochę praktyki odbyć.

Pozdrawiam.
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.