Cytat(szmerak @ 21.01.2012, 20:47:43 )

Ty wogóle nie przekazujesz nigdzie tokena.
Żadnego inputa nie ma.
Mam nadzieje że o to ci chodzi.
Pozdrawiam.
Tak jak napisal @mortus prosze najpierw dobrze sprawdzic i pozniej ewentualnie wyciagac wnioski.
@mortus masz racje ze generowanie powinno byc w czasie wysylania formularza bo tak jak mowisz token w moim przypadku bedzie generowal sie x2, w czasie ladowania formularza i w czasie jego wyslania zgadzam sie.
Ale wtedy musze recznie ustawic token jesli mam go uzyc po wyslaniu formy, nie moge uzyc pola typu hidden do formularza bo formularz jest wyswietlany 1 raz przed jego wyslalniem potem nie tworze juz formularza.
Czyli mam:
//tworzenie pola typu hidden dla tokenu
$this -> form_builider -> add_field('token');
$this -> form_builider -> set_token_value($token);
$this -> form_builider -> add_form_action(array('action' => 'update_'.$table));
A dopiero potem:
if(isset($_POST['submit_formy'])) {
//walidacja,zapis itp...itd...
}
Czyli musze to zrobic bez niewidocznego pola.
Cytat
EDIT: Zapomniałem o jeszcze jednej ważnej kwestii. Chodzi o to, czym mianowicie jest $this->security, bo mogę jedynie zgadywać. W każdym bądź razie istotnym jest, aby ten obiekt (bo chyba to jest obiekt) przechowywał wygenerowany token np. w sesji czy w bazie danych. Mam nadzieję, że to robi, bo inaczej to nie mamy o czym rozmawiać
Pewnie to jest oczywiste

/**
*Generuje token dla csrf
*@access public
*@return string
*/
public function csrf_token_generate()
{
if($this -> is_csrf())
{
$_SESSION['token'] = $token;
return $token;
}
return null;
}
/**
*Sprawdza zgodnosc tokenu z get'a z tym z zapisanym w sesji
*@access public
*@return bool
*/
public function csrf_check_token()
{
if($this -> csrf)
{
if($_POST['token'] == $_SESSION['token'])
return true;
else
throw new Volta_Admin_Generator_Csrf_Exception("Zly token.");
}
return null;
}
Dzieki za odp.