• User

    Mantenere valori inseriti in un form dopo segnalazione errore input

    Ciao a tutti,
    dopo aver letto un mare di informazioni sull'argomento, vi chiedo aiuto per sapere che cosa mi manca in questa situazione:

    tramite un form chiedo all'utente un nome, cognome, città ecc.

    dopo il submit del form controllo se ha inserito tutti i dati obbligatori.
    Tutto nello stesso .php
    In caso positivo registro i dati nel database.
    In caso negativo lo avverto (messaggio sempre in php, non javascript) e ripresento il form.
    Come è possibile visualizzare e non perdere i dati che aveva inserito precedentemente in modo corretto?
    I dati ci sono in $_POST !

    Non ho in testa come deve essere fatta una buona programmazione in questo senso.... anzi sono 😮

    Grazie
    Patpat


  • ModSenior

    Metti come value:
    [php]
    <?=(isset($_POST['NAME']) ? $_POST['NAME'] : '')?>
    [/php]
    dove name è il nome del campo


  • User

    Ciao! Grazie per la risposta!!!
    Mi sembrava di aver provato in questo modo che mi hai suggerito...
    magari riverifico... 😉
    Quello che vorrei capire è se il metodo va bene:
    io ho un form.php che contiene il form e dopo la conferma dei dati, tramite post, rimanda con action ad esegui.php che fa i controlli e se tutto va bene scrive su db altrimenti torna al primo php con messaggio di errore per utente tipo manca titolo ecc. ... e nel form non ho più i dati che erano stati inseriti prima.

    Ho letto che era possibile mantenersi nel php del form fino a quando i controlli non erano ok mettendo in action del form il file php stesso ma poi come arrivo in esegui.php?
    Mettendo una if in action?
    Ma ho anche letto che questo non era il metodo più corretto! O no?? :mmm:

    Grazie ancora!
    Patpat


  • ModSenior

    Personalmente, ritengo che separare il form, dal codice che lo elabori sia una pessima scelta. Cosi dovresti impostare dei cookie, fare il redirect e nel form controllare se devono comparire i dati immessi la prima volta, e la procedura diventa più lunga