![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito. |
||||
|
|||||||||
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
User Newbie
Data di registrazione: Jan 2012
Ubicazione: Silvi
Messaggi: 3
|
rendere obbligatori campi form
Salve a tutti, sono un nuovo iscritto al forum con un "problemino" che vorrei sottoporvi.
Sono alle prese con un form per invio dati via mail da sito, in html + php. vorrei rendere obbligatori i campi da compilare ottenendo, in caso di mancata compilazione, un messaggio di errore o comunque un avviso. Allego il codice php: <?php /*INVIO DATI*/ $destinatario = "mia@mail.it"; $oggetto = "Invio dati e richiesta informazioni corso"; $messaggio = "Nome: ".htmlentities($_POST['Nome'])."\n"; $messaggio .= "Cognome: ".htmlentities($_POST['Cognome'])."\n"; $messaggio .= "Giorno: ".htmlentities($_POST['Giorno'])."\n"; $messaggio .= "Mese: ".htmlentities($_POST['Mese'])."\n"; $messaggio .= "Anno: ".htmlentities($_POST['Anno'])."\n"; $messaggio .= "Citta: ".htmlentities($_POST['Citta'])."\n"; $messaggio .= "Provincia: ".htmlentities($_POST['Provincia'])."\n"; $messaggio .= "Telefono: ".htmlentities($_POST['Telefono'])."\n"; $messaggio .= "Email: ".htmlentities($_POST['email'])."\n"; //$messaggio .= "Data: $data\n"; //$messaggio .= "Citta': $citta\n"; //$messaggio .= "Provincia: $provincia\n"; //$messaggio .= "Email: $email\n"; $messaggio .= $testo; $da = $email; $intestazioni = "From: $da"; mail($destinatario,$oggetto,$messaggio,$intestazio ni); ?> Qualcuno puo' aiutarmi? Grazie ![]() |
|
|
|
|
|
|
|
#2 (permalink) |
|
User
Data di registrazione: Oct 2011
Ubicazione: Latina
Messaggi: 113
|
Tutti i campi sono obbligatori? Se cosi` fosse basta un ciclo che controlla tutti i valori passati in $_POST:
foreach($_POST as $item){ if($item == ''){ //oppure !isset($item) credo vada bene echo "Errore, campo non compilato!"; exit; } } Testa e vedi se funziona. Ci sono soluzioni piu` eleganti, dal controllo profondo ad alcune librerire javascript ma questo dovrebbe funzionare! |
|
__________________
Andrea Rufo |
|
|
|
|
|
|
#4 (permalink) |
|
User
Data di registrazione: Oct 2011
Ubicazione: Latina
Messaggi: 113
|
Anche se l'effetto potrebbe essere lo stesso io lo inserirei come primissimo passaggio dello script prima che i valori vengano assegnati alle variabili (ottimizzando lo script).
Eventualmente aggiungi qualche filtro onde evitare iniezione di codife malevolo! |
|
__________________
Andrea Rufo |
|
|
|
|
|
|
#5 (permalink) |
|
User Newbie
Data di registrazione: Jan 2012
Ubicazione: Silvi
Messaggi: 3
|
ho provato a metterlo dopo la sfilza di $messaggio e... FUNZIONA!! ![]() scusa ma cosa intendi per "ottimizzare lo script"? e per filtri contro il codice malevolo? cosi' com'è corro qualche rischio? mi piacerebbe inserire un codice CAPTCHA... forse ti riferisci a quello?? un ultima domanda... l'echo di risposta del tuo script... sono riuscito a centrarlo nella riga con un <center>...</center> ...posso anche cambiare carattere, dimensione, colore etc etc? magari centrarlo nella pagina? ti ringrazio per la disponibilità |
|
|
|
|
|
#6 (permalink) |
|
User
Data di registrazione: Oct 2011
Ubicazione: Latina
Messaggi: 113
|
Bhe, Alberto, mi pare proprio che manchi nelle piu` minime nozione di PHP per comprendere quello che stai facendo.
Per ottimizzare lo script intendo questo: per inizializzare variabili e per computare alcune operazioni (inizializza $message, aggiungi questo, aggiungi quello e quell'altro...) si occupa tempo e memoria del server che poi e` inutile se, dopo queste operazioni, si esegue il controllo che blocca il tutto. Sarebbe meglio mettere il controllo prima. Ma questo non compromette l'esecuzione. A meno di iniezione di codice, ovvero, senza la giusta protezione, un malintenzionato potrebbe inserire del codice nei campi che verrebbe male interpretato dal server mandando in crash lo script e avendo problemi di sicurezza (discorsi complessi). Si puo` evitare questo magari utilizzando dei filtri sui campi (addslashes, htmlentities, replace, ecc.): ti consiglio di leggere un manuale e la documentazione PHP. Il CAPTCHA serve solo in fase di inserimento (quindi nella pagina prima dello script che controlla e manda la mail) a vedere se e` unmano o macchina chi scrive nel form. Quello restituito dall'echo e` puro HTML e puoi scriverci i tag che vuoi e stilarlo anche in CSS: il tag <center> e` deprecato e non sarebbe da usare. Usa il tag <p> e stilalo in CSS per avere un risultato moderno, professionale e validato. |
|
__________________
Andrea Rufo |
|
|
|
|