Sto seguendo questo esempio esercitazionePerché questo esempio Zend smette di funzionare quando aggiungo un hash alla forma
codice di progetto: http://akrabat.com/wp-content/uploads/zf-tutorial-layoutform.zip
tutorial: http://akrabat.com/zend-framework/a-form-in-your-layout/
Il codice del progetto viene eseguito come previsto, fino a quando non aggiungo un elemento hash al modulo. Tutto ciò che faccio è aggiungere questo codice nel modulo sotto application/forme/Signup.php
$hash = new Zend_Form_Element_Hash('hash');
$hash->setSalt('mysalt');
$this->addElement($hash);
Questo extra po 'di codice genera tutto fuori. Quando invio il modulo ora, mi dà l'errore che i 2 token non corrispondono.
Alcuni di risoluzione dei problemi:
- Il problema non è l'hash per sé, perché funziona bene in altri miei esempi.
- Penso che abbia a che fare con il modo in cui viene gestita la richiesta in questo esempio, ma non sono sicuro di quale sia esattamente il problema. Ho pensato che avesse a che fare con il numero di hop, ma quando modifico Zend_Form_Element_Hash e ho cambiato il numero di hop da 1 a 100, ho ancora lo stesso errore.
Questa è la misura della risoluzione dei problemi che potrei pensare al mio livello di esperienza con Zend. Quindi pensavo fosse ora di chiedere il cervello grande. Spero che qualcuno possa capirlo.
Poiché l'elemento hash utilizza zend_session potrebbe essere un problema. un'altra cosa da controllare potrebbe essere l'hop fino alla convalida quando l'hash scade dopo un salto (o dopo un timeout). – Fge
No è hardcoded. Ma potresti voler confrontare il contenuto della sessione e i dati del modulo inviato. ($ _SESSION vs $ _POST) e rimuovere eventuali reindirizzamenti per il debug. – Fge
Non direttamente. Ma è più di uno se la tua barra del browser mostra qualcos'altro rispetto ai moduli target. Ma se non si effettua il reindirizzamento, è necessario controllare il $ _SESSION/$ _ POST. – Fge