- Home
- Categorie
- Coding e Sistemistica
- PHP
- recuperare i dati form seriamente
-
recuperare i dati form seriamente
Ciao a tutti e grazie a chi fin'ora mi ha risposto con competenza , oltre che pazienza .
Essendo un php principiante x:x
mi chiedevo come creare una seria verifica dal mio form perchè con il mio METODO NEWBIE qualcosa ricavo ma .......vedere le cose serie è un'altra cosa .....
Per esempio in questo mio modo se uno dei campi è vuoto vengono comunque inviati gli altri valori.........e sicuramente il tutto è pieno di altri bug .Qualcuno ha un modo piu' professionale o elegante di estrarre i valori ? ( i campi partenza erichiesta si riferiscono alle lingue........trattasi di materia di traduzioni )
Secondo me se una qualsiasi delle mancanze dell'utente si verifica , questa pagina dovrebbe presentare una finestra di stop...........non so' se mi spiego............INVECE IO RIESCO SOLO
A FARE QUELLO CHE VEDETE .grazie
<?
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$email=$_POST['email'];
$telefono=$_POST['telefono'];
$partenza=$_POST['partenza'];
$richiesta=$_POST['richiesta'];
$messaggio=$_POST['campotesto'];#eliminazione degli spazi $nome=trim($nome); $cognome=trim($cognome); $email=trim($email); $telefono=trim($telefono); $partenza=trim($partenza); $richiesta=trim($richiesta); $messaggio=trim($messaggio); #controllo la lunghezza dei campi nome , cognome $lungh_nome=strlen($nome); $lungh_cognome=strlen($cognome); $lungh_partenza=strlen($partenza); $lungh_richiesta=strlen($richiesta); $lungh_messaggio=strlen($messaggio); if ($lungh_nome <= 3) { echo "Spiacente,il nome deve contenere almeno 3 caratteri<br><br>"; } else { echo "il tuo nome è $nome <br><br>"; } if ($lungh_cognome <= 3 ) { echo "Spiacente,il cognome deve contenere almeno 3 caratteri<br><br>"; } else { echo "il tuo cognome è $cognome <br><br>"; } if ($lungh_partenza <= 3) { echo "Spiacente,la lingua di partenza deve contenere almeno 3 caratteri<br><br>"; } else { echo "la lingua di partenza è $partenza <br><br>"; } if ($lungh_richiesta <= 3) { echo "Spiacente,la lingua richiesta deve contenere almeno 3 caratteri<br><br>"; } else { echo "la lingua richiesta è $richiesta <br><br>"; } if ($lungh_messaggio <= 3) { echo "Spiacente,il messaggio deve contenere almeno 3 caratteri<br><br>"; } else { echo "il tuo mesaggio è $messaggio <br><br>"; } #ho impostato la variabile a false in modo che quando c'e mi mostri torna indietro $errore=false;
if ( ($nome == "") || ($cognome == "")|| ($email == "")|| ($telefono == "")||($partenza== "")|| ($richiesta== "")) {
#se solo uno dei campi è vuoto $errore=true; echo "<BR>Spiacente, devi compilare tutti i campi<br><br>"; } la mail, imposto una variabile che poi confronto con email $pattern="^[^@ ]+@[^@ ]+\.[^@ \.]+$"; if (!ereg($pattern,$email)) { echo " <b>\"$email\"</b>ma non è una email valida<br>"; }else{ echo "Questa e la tua email <b>$email</b><br>"; } ?>
-
potresti spiegare meglio cosa dovrebbe accadere se il form è compilato correttamente e cosa invece se il form non è corretto?
e la parte di script contenente il form vero e proprio è in un file a parte o è integrata nella stessa pagina contenente il codice che hai postato?
-
il controllo dei campi vuoti , della lunghezza ecc.. e' meglio che li fai fare lato client (con javascript e regular expression) e non far inviare la form per poi controllare ed eventuale ritornare alla pagina del form.
-
MA....che dire...............nel frattempo ....dall'ultimo post ..........ho migliorato il tutto..........ma mi piacerebbe vedere qualche script diciamo...........professionale ed elegante sul recuper valori da un form .
Con cio' intendo del codice che EVITI DI STAMPARE A VIDEO COMUNQUE TUTTI I DATI NONOSTANTE UNO DEI CAMPI SIA CHE SO...VUOTO...O PRIVO DELLA CHIOCCIOLA.......NEL CASO DELLE MAIL..........
uno scipt selettivo ..............che se qualsiasi cosa non venga inserita correttamente nel form faccia apparire una finestra relativa a cio'...........
e che NON RECUPERI COMUNQUE GLI ALTRI DATI...........quelli corretti intendo .Se avete script del genere sarei contento di poterli studiare .
Grazie
A
-
puoi provare ad annidare le condizioni:
[php]
if($nome==ok){
if($cognome==ok){
if($altro_dato==ok){
//qui procedi con lo script
}else errore($altro_dato);
}else errore($cognome);
}else errore($nome);
[/php]
-
se quella la chiami eleganza piccolo socrate! scherzo eh!
cmq portrebbe anche mettere tutte le condizioni a controllo del flag errore che viene impostato a true solo se tutte le condizioni sono verificate.
Dopo aver impostato il flag fa un controllo solo su quello e se è false mostra un messaggio di errore, altrimenti mostra il valore di tutte le variabili.
Concordo cmq con 4ustat: il controllo sull'input ti conviene farlo lato client perchè così eviti all'utente di dover attendere il caricamento della pagina per scoprire che ha compilato male determinati campi, senza contare che se lo script non è fatto bene l'utente si troverebbe costretto a ricompilare anche tutti i campi corretti...