php info..

Riccardo1983

Nuovo Utente
15 Apr 2013
3
0
0
Salve! Sono nuovo del form!

- Sto costruendo un modulo di iscrizione, ho già impostato i controlli necessari per ogni campo, a parte la crittografia della password con md5.

Il problema e questo: vorrei fare in modo di non costringere l'utente che si registra, ogni qualvolta sbagli a compilare un campo o se ne dimentichi, di ricompilare tutto il form.

Mi spiego meglio: quando compilo i campi e faccio invio, dai campi input compilati correttamente, sparisce cio' che ho inserito, mentre rimangono le segnalazioni di quelli compilati in modo errato o non compilati affatto, questo pero' comporta all'utente di ricompilare nuovamnte sia quelli compilati in modo corretto che i non!
come ovviare a questo problema?
Spero di essere stato chiaro!!
Qualcuno mi sa aiutare??
 
inviando il form invii i dati con post o get per rivisualizzare i valori in caso di errore ti basta inserire un semplice if nei campi input

PHP:
<div id="nome">Nome: *</div>
<input type="text" name="nome" id="nome" value="<?php if(isset($_POST['nome'])) echo $_POST['nome']; ?>" /><br /><br />
<div id="cognome">Cognome: *</div>
<input type="text" name="cognome" id="cognome" value="<?php if(isset($_POST['cognome'])) echo $_POST['cognome']; ?>" /><br /><br />

in sostanza tu controlli se esiste il valore in $_POST e se esiste fai una echo e lo visualizzi ;)
 
ah un piccolo consiglio metti un titolo descrittivo del problema le prossime volte perche ti assicuro che avrai molte piu risposte. inoltre in questo caso sembrava essere un problema sul phpinfo ;)
 
inviando il form invii i dati con post o get per rivisualizzare i valori in caso di errore ti basta inserire un semplice if nei campi input

PHP:
<div id="nome">Nome: *</div>
<input type="text" name="nome" id="nome" value="<?php if(isset($_POST['nome'])) echo $_POST['nome']; ?>" /><br /><br />
<div id="cognome">Cognome: *</div>
<input type="text" name="cognome" id="cognome" value="<?php if(isset($_POST['cognome'])) echo $_POST['cognome']; ?>" /><br /><br />

in sostanza tu controlli se esiste il valore in $_POST e se esiste fai una echo e lo visualizzi ;)

Ti ringrazio della dritta sul titolo in effetti fa capire altro..
Volevo dirti io ho gia fatto il recupero del POST con if nel campo value

<?
if(isset($_POST['nome'])){
echo $_POST['nome'];
}
?>

Ma questo genera un problema.
Quando premo invio per la prima volta, i campi compilati correttamente vengono recuperati, mentre gli altri vengono segnalati bloccando lo script,
nel secondo invio, i campi precedentemente recuperati, vengono ritrasmessi al server ma php li considera vuoti, praticamente li recupera con il primo invio, mentre con il secondo, cioe' dopo la compilazione dei campi mancanti, considera il POST vuoto.
ho provato anche a settare i cokiee ma non è una buona idea perche' una volta compilato correttamente il tutto mi ricarica l'homepage con tutti i dati immessi precedentemente.
comunque faro' un altro tentativo..
 
Per fare una cosa del genere devi fare il controllo dei dati su due livelli:
- client (javascript)
- server (php vista la sezione)
Il controllo lato client è by-passabile da un utente che ha anche un po' di dimestichezza è per questo che c'è il controllo lato server.
 
Per fare una cosa del genere devi fare il controllo dei dati su due livelli:
- client (javascript)
- server (php vista la sezione)
Il controllo lato client è by-passabile da un utente che ha anche un po' di dimestichezza è per questo che c'è il controllo lato server.
Quoto e aggiungo che è inutile ripetere 2 volte i controlli(sul client e sul server) ma è meglio cercare di utilizzare sempre quelli sul server, sfruttando eventualmente il js (tramite ajax) per riportare gli errori o segnalare che andato a buon fine senza refresh della pagina.
 
Si..si possono 'unificare' i due livelli di controllo con javascript e in particolare con l'utilizzo di ajax infatti.
 
Si se vuoi utilizzare solo php devi comunque salvare tutti i valori dei campo di inserimento in delle variabili di sessione, poi le controlli e vedi se può andare a buon fine il tutto altrimenti torni indietro e riempi gli input con le variabili di sessione già settate prima.
 

Discussioni simili