Obserwuję tym przykładzie poradnikaDlaczego Zend przykład przestaje działać kiedy dodać skrót do formularza
kod projektu: http://akrabat.com/wp-content/uploads/zf-tutorial-layoutform.zip
poradnik: http://akrabat.com/zend-framework/a-form-in-your-layout/
Kod projektu przebiega zgodnie z oczekiwaniami, aż dodaję element hash do formularza. Wszystko co mogę zrobić, to dodać ten kod w formularzu pod formularzem/formularze/Signup.php
$hash = new Zend_Form_Element_Hash('hash');
$hash->setSalt('mysalt');
$this->addElement($hash);
Ten dodatkowy kod kodu wszystko wyrzuca. Kiedy przesłać formularz teraz, daje mi błąd, że 2 tokeny nie pasują.
Niektóre rozwiązywanie problemów:
- Problemem nie jest sam hash ponieważ działa prawidłowo w moich innych przykładów.
- Myślę, że ma to związek z tym, jak rozpatrywane jest żądanie w tym przykładzie, ale nie mamy pewności, na czym dokładnie polega problem. Myślałem, że ma to związek z liczbą przeskoków, ale kiedy edytuję Zend_Form_Element_Hash i zmieniłem liczbę przeskoków z 1 na 100, wciąż mam ten sam błąd.
To jest zakres rozwiązywania problemów, które mogłem wymyślić na moim poziomie wiedzy z Zend. Więc pomyślałem, że nadszedł czas, aby zapytać wielkie mózgi. Mam nadzieję, że ktoś może to zrozumieć.
Jako element skrótu używa zend_session, który może być problem. kolejną rzeczą do sprawdzenia może być chmiel aż do sprawdzenia poprawności, ponieważ wartość mieszania wygasa po jednym przeskoku (lub po przekroczeniu limitu czasu). – Fge
Nie jest to zakodowane na stałe. Ale możesz porównać zawartość sesji i dane formularza przesłanego. ($ _SESSION vs $ _POST) i usuń wszelkie przekierowania do debugowania. – Fge
Nie bezpośrednio. Ale to więcej niż jeden, jeśli pasek przeglądarki pokazuje cokolwiek innego niż cel formularza. Ale jeśli nie przekierowujesz, naprawdę powinieneś sprawdzić $ _SESSION/$ _ POST. – Fge