Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wysyłanie postem, walidacja formularza i ponowne wysłanie postem
plej
post
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Napisz sobie funkcję, którą wykonasz w momencie przesyłania danych do pliku docelowego.


--------------------
Go to the top of the page
+Quote Post
Sephirus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


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.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
com
post
Post #4





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

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


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
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #5





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


A po co chcesz wysyłać jeszcze raz te dane POST-em?


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
plej
post
Post #6





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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.
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: 21.08.2025 - 14:27