Newsgroup: it.comp.www.php
Titolo: conservare i dati immessi nelle form

Ho un piccolo quesito da sottoporre:
ho una pagina php con una form costituita da vari campi, in cui gli utenti
inseriscono dei dati che poi vengono inviati (con metodo POST) ad un'altra
pagina php. Se un dato non č valido l'utente viene rimandato alla prima
pagina (quella con la form). Il problema č che i dati immessi non vengono
conservati e quindi l'utente si ritrova a dover inserire di nuovo TUTTI i
campi.
Sono riuscito ad aggirare il problema facendo tutto con un'unica pagina (il
POST della form punta alla pagina stessa), perň se su questa pagina utilizzo
le sessioni (invocando session_start) la cosa non funziona piů.
Pertanto la mia domanda č la seguente: esiste un metodo per conservare i
dati immessi nelle form quando si utilizzano due pagine diverse e le
sessioni ?
Grazie.

 
[CUT]
Io (da profano) ho fatto così:
ho scritto una classe che contiene le informazioni relative alla form
da disegnare (ad esempio, numero di campi, valore di ogni campo ecc).
Disegno la form secondo questi dati.
Quando clicco su un pulsante, viene richiamato il file parser.php che
provvede prima di tutto a salvare i valori della form nella classe, e
poi a svolgere eventuali altre attività, tra le quali il ridisegno
della form secondo nuovi valori.
In questo modo, posso ridisegnare la form utilizzando sempre i valori
della classe.
Ad esempio, tra i pulsanti della form, ce c'è uno che mi consente di 
aggiungere dei campi alla form stessa (ad esempio, in una rubrica, 
se voglio imputare tre numeri di telefono alla stessa persona ho 
bisogno di tre campi "numero telefono". Tale pulsante mi ridisegna 
la form con 3 campi telefono, conservando i dati già immessi).
Nella classe ho una variabile $numeri che mi dice quanti numeri voglio
inserire, e quindi quanti campi disegnare nella form.
Spero sia stato chiaro.
E' un pò macchinosa come cosa, ma funziona.
Spero che qualcuno abbia una soluzione più elegante e pratica.
Saluti
Robbie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
puoi usare campi hidden, per es.
pag1
<form action="pag2.php" method="POST">
  <input type="text" value="$_POST['testo']" name="testo">
  <input type="submit">
</form>
pag2
<?
  if ((!isset($_POST['testo']))||($_POST['testo']!="pippo"))
   {
    ?>
     <form action="pag1.php" method="POST">
      <input type="hidden" name="testo" value="$_POST['testo']">
      <input type="submit" value="Valore errato, torna indietro">
     </form>
    <?
   } else {
      print "Grazie per aver inserito ".$_POST['testo']." !";
     }
?>
ciao
Alesi_27

Grazie mille a tutti per la pronta risposta. In realtà l'utilizzo di una
classe e campi hidden era già in cantiere, ma speravo ci fosse un medoto
meno dispendioso in termini di tempo e codice. A quanto pare non c'è :-)
Mi sgranchisco le dita e mi avvicino alla tastiera :-)
Grazie ancora,
alla prossima!

 Mi sgranchisco le dita e mi avvicino alla tastiera :-)
Fare un semplice foreach di $_POST non mi sembra poi così dispendioso in
termini di codice.
ste


Guarda che il metodo meno dispendioso è quello di usare le sessioni
Cordialmente.
Carmelo Carchedi.
togli i simboli di zorro dallamia e-mail.