Newsgroup: it.comp.www.php
Titolo: Gestire i form e submit

Salve.
Vorrei come potrei gestire i form nel senso
generalmente nelle mie pagina dopo che viene fatto il submit
e qualcosa va storto mostro un messaggio.
Poi se torno indietro però ho perso tutti i dati precedentemente
inseriti
mi chiedevo se qualcuno avevo collaudato un meccanismo facile e bene
gestibile per risolvere questo problema.
p.s
mi sto documentando anche con lo viewstate quella
tecnica invetata da $MS su 
asp.net
 per cercare se non altro di
imitare. 
grazie mille ciao

gestibile per risolvere questo problema.
Puoi usare 2 tecniche: 
1) metti nell'action la pagina stessa (phpself), all'inizio della
pagina controlli se il submit è settato, se lo è vuol dire che
l'utente ha inviato il form e quindi guardii se sono settate le
variabili inviate dal form e ci fai i controlli che devi fare, ed a
seconda del risultato scrivi o meno il messaggio di errore
2) metti nell'action una pagina diversa, e memorizzi i dati passati in
cookie o sessione, se nella pagina 2 non vengono passati i controlli
rispedisci l'utente alla pagina 1, ma poichè hai memorizzato i dati
inviati, li puoi recuperare e precompilare il form.
Se il form è semplice la soluzione 1 è preferibile, la 2 la userei
solo per form particolari o multistep.
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it

Ciao,
più o meno fin qui ci ero arrivato pure io,
quello che puntavo era ottenere un mini sistema flessibile e riusabile,
la cosa che proprio non mi piace è mettere nel form codice del tipo:
<tag ... value=<?=$valorecampo?> 
etc.
Ma forse non ho via di scampo.

<tag ... value=<?=$valorecampo?> 
 in effetti meglio mettere:
<tag ... value='<?php echo $valorecampo; ?>'>
oppure, se è php, 
echo "<tag ... value='"$valorecampo."'>";



stavo studiando la tecnica viewstate.
Dunque vorrei imitarla ma farla (renderla) molto
più semplice e leggera, se possibile vorrei evitare di usare sessioni.
Ho un problema di carattere tecnico in sostanza i tipici passi sulla
gestione banale di un form sono questi:
1 ) vai a  pagine che contiene i form
2 ) inserisci i dati
3 ) submit
4 ) errore .
5 ) faccio tutte le mie operazoinie e tengo tutto lo stato
    dentro una oggetto mio (non interessa come)
6 ) Ora dovrei "dare" questo stato alla form ma come ?
    L'unico modo è tramite $_GET che vorrei evitare per     questioni
di dimensione dei contenuti (get ha cmq un limite)
dovrei quindi passarli tramite post come potrei fare?
una soluzione mooolto sporco che mi viene è generare un form al volo e
fare l'uatosubmit di quel form alla pagina che contiene il form del
punto 1) ma è molto sporca.. :(

più semplice e leggera, se possibile vorrei evitare di usare sessioni.
Perchè? La sessione è fatta apposta per questo.



infatti ho messo se possibile come ultima risorsa insomma,
quello che ho chiesto credi sia possibile ? (magari esiste qualche 
meccanismo a me oscuro che permette di farlo
grazie ciao  :-) 

meccanismo a me oscuro che permette di farlo
è possibile utilizzando le sessioni, che sono proprio ciò che ti
serve, tra l'altro anche in maniera molto semplice. Da dove nascono le
tue perplessità sull'uso delle sessioni?



In generale so che sono poco sicure ma per questi utilizzi la sicurezza 
potrebbe anche essere tralasciata
il vero problema e che non so quando scadono questo cosa mi infastidisce 
parecchio
potrei avere un pagina con login e dati vari ad esempio il carrello della 
spesa
e ad un certo punto mi ritrovo in una situazione "incerta" perchè per 
qualche motivo
(timeout della sessione) la sessione scade.
ma di preciso non so quando e dove. 

(timeout della sessione) la sessione scade.
la sessione ha un tempo di inattività dopo il quale viene cancellata,
di default è settato a 24 minuti, ma si può cambiare, ad ogni modo 24
minuti di inattività mi sembrano un bel tempo; poi c'è il tempo di
vita del cookie di sessione, che di default è impostato a 0 (alla
chiusura del browser scade la sessione, ma anche questo si può
cambiare). I tuoi timori sono infondati, tutti le applicazioni di una
certa complessità come ad esempio  e-commerce sono realizzate
utilizzando cookie (meno sicuri) e sessioni (più sicure) per mantenere
la persistenza dei dati.



Si questo lo sapevo