Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
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.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 06-01-12, 02:26   #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
alberto22664 non in linea   Rispondi citando
Vecchio 06-01-12, 13:25   #2 (permalink)
User
 
L'avatar di andrearufo
 
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
andrearufo non in linea   Rispondi citando
Vecchio 06-01-12, 14:04   #3 (permalink)
User Newbie
 
Data di registrazione: Jan 2012
Ubicazione: Silvi
Messaggi: 3
grazie andrearufo per la risposta
Si, vorrei rendere obbligatori tutti i campi

devo inserire il ciclo in qualche punto particolare del codice?
alberto22664 non in linea   Rispondi citando
Vecchio 07-01-12, 01:49   #4 (permalink)
User
 
L'avatar di andrearufo
 
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
andrearufo non in linea   Rispondi citando
Vecchio 07-01-12, 13:34   #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à
alberto22664 non in linea   Rispondi citando
Vecchio 07-01-12, 16:16   #6 (permalink)
User
 
L'avatar di andrearufo
 
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
andrearufo non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:41.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.