check su zend_form

Buonasera! O buongiorno vista l'ora...

Ho un form con questi campi:

id (hidden)

pippo

paperino

Questo form va ad inserire questi dati in una tabella la quale ha i seguenti campi:

id

pippo

paperino

pluto

In pratica voglio evitare che l'utente, tramite manipolazione dei dati POST, possa andare ad inserire dei valori creati ad hoc nei campi id e pluto.

E' necessario fare un controllo lato model creando una funzione insert() personalizzata, o basta il metodo di Zend_Form che richiamo tramite $form->isValid() ?

Gracias! =)

inviato 6 anni fa
Sifro
X 0 X

Come memorizzi i dati nel DB?

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

tramite $model->insert($formData), quindi devo in qualche modo assicurarmi che formData non contenga dati manipolati malvagiamente.

risposto 6 anni fa
Sifro
X 0 X

$model è un oggetto di quale classe?

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

E' un oggetto della classe Model_DbTable_Nometabella, ovvero il model della tabella sulla quale andrò ad inserire i dati

risposto 6 anni fa
Sifro
X 0 X

Per quanto riguarda il campo ID potresti evitare di inserirlo nel form ed invece metterlo in sessione, così sei sicuro che non potrà essere manipolato. Oppure puoi inserire un ulteriore campo nascosto con l'hash dell'ID (opportunamente costruito) in modo da ricontrollarlo alla ricezione del Form per verificare eventuali manomissioni.

Se poi vuoi inserire un campo nel Form ma non vuoi recuperare il suo valore dal Form inviato dall'utente allora puoi utilizzare il metodo setIgnore() sull'elemento in questione.

Non credo invece che il campo pluto venga restito dal Form poiché il Form restituisce solo il valore dei campi che lo costituiscono e non di tutti i dati del $_POST. Comunque basta fare una prova per verificare.

 :bye:

risposto 6 anni fa
Gianni Tomasicchio
X 0 X

bene, grazie mille =)

l'idea dell'hash dell'id poi mi piace.

risposto 6 anni fa
Sifro
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda