Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Token dla csrf
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Witam mam taki glupi problem oto maja taki kod:
http://pyp.net.pl/source/4f1ad742429ff
No i o ile pokazuje nam ze token wygenerowany i wpisany w html jako pole hidden jest taki sam jak ten z sesji przed wyslaniem formularza, to juz po wyslaniu formularza ten z $_POST['token'] zmienia.

Problem banalny ale stwarza mi wiecej problemow niz te bardziej skomplikowane.

Tutaj mozna sobie zobaczyc http://marcio.ekmll.com/formbuilider/index...news&id=301
login: ebreo
pass: qwerty

Ten post edytował marcio 21.01.2012, 16:18:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Może źle się wcześniej wyraziłem, albo źle zinterpretowałeś moją wypowiedź. Schemat ogólny:
  1. $renderForm = true;
  2. if(isset($_POST['submit_form_sbt'])) {
  3. // walidacja, zapis, itd.
  4. // a jeśli wszystko się powiedzie to albo następuje przekierowanie, albo pozostajemy na tej samej stronie, ale już nie renderujemy formularza edycji danych
  5. // jeśli korzystamy z przekierowania to nie ma potrzeby korzystać ze zmiennej $renderForm
  6. if($wszystkoOk) $renderForm = false;
  7. }
  8. if($renderForm) {
  9. // generujemy token i renderujemy formularz
  10. }

Po prostu musisz najpierw sprawdzić, czy formularz już został zatwierdzony i czy został prawidłowo wypełniony, a jeśli nie to wyświetlić formularz i ewentualne błędy.
Musisz tylko zmienić kolejność działań.

EDIT:
To co masz przed instrukcją warunkową (linie 8-23 włącznie)
  1. if(isset($_POST['submit_form_sbt']))

przenieś przed (linia 80)
  1. return $view;

i powinno działać.

Ten post edytował mortus 22.01.2012, 13:44:01
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 03:42