PDA

View Full Version : Codice mail in PHP con campi obbligatori


LupettoOne
18-05-2007, 10:31
Spero che qualcuno mi aiuti che sono stato una nottata a capire come fare ma non ci sono riuscito! Vi spiego cosa voglio fare...
In pratica ho già 1 script creato da me che serve nelle ordinazioni tipo "Nome, Cognome ecc.." funge tutto l'unica cosa che mi conviene inserire la variante per i campi obbligatori perchè ho notato che alcuni i campi li lasciano vuoti mentre sono importanti da compilare! Ora vi descrivo come è formato tutto...
Ho 2 pagine ordine.php e effettuato.php!
La pagina ordine.php è quella che ha il form "Nome, Cognome, ecc.." mentre effettuato.php è dove si trova lo script mail che invia l'e-mail all'utente con tutte le info e poi un'e-mail a me della sua ordinazione! ok?
In pratica voglio che se l'utente non ha compilato un certo campo obbligatorio deve essere inviato alla pagina di Errore tipo fare una $redirect = "PaginaErrore.php"; altrimenti se risulta tutto ok deve essere inviato alla pagina effettuato.php $redirect2 = "effettuato.php"; dove preleverà i dati e inviarli a lui e a me! Ovviamente questo codice deve essere scritto nella pagina "ordine.php" che al cliccare "Submit" il codice analizza i campi se non sono stati riempiti il codice lo deve inviare alla pagina di invio! Oppure cosa che mi è venuta ora in mente... senza creare un'altra pagina si potrebbe fare la seconda redirect sulla stessa pagina cioè se i campi sono vuoti deve uscire 1 script di alert e riportarlo sulla stessa pagina del form per farli ricompilare il modulo! Vi riporto un piccolo codice creato ora velocemente per rendervi l'idea ovviamente il codice non funziona perchè è un'esempio per farvi capire meglio:

<?
if(isset($_POST[Submit]))
$redirect = "effettuato.php";
$redirect2 = "ordine.php";
if (empty($_POST[nome]) AND !empty($_POST[cognome]) AND !empty($_POST[email]) AND !empty($_POST[paese])) {
}else{
echo "<script>alert('Errore: non hai compilato alcuni campi obbligatori!');</script>";
} else {
header("location: $redirect2");

//Altrimenti deve essere inviato alla pagina di prelievo dati $redirect = "effettuato.php";

} else {
header("location: $redirect2");
}
?>

Ecco spero che vi ho reso l'idea non sarà molto difficile credo per gli esperti e sicuramente sbaglio qualche piccolezza avendo ora la testa confusa non riesco a mettere a fuoco niente!
Ringrazio in anticipo chiunque mi aiuti! :)

LupettoOne
18-05-2007, 11:07
Raga credo che ho risolto! Mi sà che avevo bisogno di commentare qui per mettere a fuoco tutto! eheheh! Ora lo testo meglio il codice! Infatti era una piccolezza! Purtroppo la notte fa brutti scherzi! :D

dovevo solo inserire questo:

if(isset($_POST[Submit]))
if (empty($_POST[nome]) AND !empty($_POST[cognome]) AND !empty($_POST[email]) AND !empty($_POST[paese])) {
}else{
echo "<script>alert('Errore: non hai completato tutti i campi');</script>";
exit();
}

e basta! :doh:

Ovviamente la pagina effettuato.php sta specificata nell'action altrimenti non invia niente!
Se i campi specificati nella variante "if" non sono riempiti mi esce il messaggio di allerta e resto immobile sulla stessa pagina fin quando non inserisco tutti i campi!

Ora lo testo per bene prima di metterlo on-line!
P.S per gli esperti in PHP se vedete qualche errore vi prego di comunicarlo in modo da far risultare il codice pulito! Grazie! :)

LupettoOne
18-05-2007, 13:44
Allora in pratica non funge perchè mettendo il codice nella pagina ordine.php il messaggio di allerta mi compare appena clicco sulla pagina e giustamente non va! Quindi lo devo inserire nella pagina effettuato.php dove si trova anke il codice mail! Se qualcuno ha già la soluzione si me la può postare che sto impazzendo! :doh:
Grazie di nuovo in anticipo!

LupettoOne
18-05-2007, 14:46
Vabbè raga ho fatto! Ho dovuto aggiungere la redirect in javascript! Ora posso andare a riposare un pò! ahahaha! Grazie lo stesso! ;)