per un modulo che invii una mail utilizzo questo codice trovato in rete collegato ad un pulsante INVIA
Nel SWF sono presenti 6 caselle di testo di input e una di testo dinamico chiamata output. Il codice del file invia.php ècodice:on(release){ //quando il pulsante viene rilasciato if( modello eq "" ) check1=false;/*se il campo nome contiene una stringa vuota (usiamo l'operatore eq "equals" per confrontare due stringhe ), cioè non contiene nulla assegna false alla variabile check1*/ else check1=true; /*altrimenti assegna true alla variabile check1*/ /*sul campo mail dobbiamo inserire dei controlli più avanzati, ovvero dobbiamo accertarci che l'indirizzo e-mail immesso sia valido. Lo stratagemma che usiamo è quello di verificare la presenza dei caratteri "." e "@". Usiamo il metodo lastIndexOf('carattere') che ci restituisce un intero che rappresenta l'ultimo "indice" o per semplicità l'ultima posizione di un certo carattere all'interno della stringa sulla quale richiamiamo il metodo. La condizione necessaria a superare il nostro controllo è che il numero restituitoci sia diverso da -1, il che significa che il carattere deve essere effetivamente presente nella stringa. Inoltre controlleremo che la stringa non sia vuota. Tutti questi controlli saranno concatenati dall'operatore logico or "||" che mette a paragone due espressioni e se una sola di queste è vera allora il risultato sarà vero*/ if(mail.lastIndexOf ('.') == -1 || mail.lastIndexOf ('@') == -1 || mail eq "") check2=false; /*se l'ultima posizione dei caratteri '.' e '@' è -1 o la stringa è vuota, assegna false a check2*/ else check2=true; /*altrimenti assegna true a check2*/ if( note eq "") check3=false;/*se il campo nome contiene una stringa vuota assegna false a check3*/ else check3=true;/*altrimenti assegna true a check3*/ if( taglia eq "") check4=false; else check4=true; if( colore eq "") check5=false; else check5=true; if( quantita eq "") check6=false; else check6=true; if(check1 && check2 && check3 && check4 && check5 && check6){ /*ora confrontiamo fra di loro le variabili check1,check2 e check3 tramite l'operatore and "&&" che restituisce vero solo se tutte e tre le variabili sono vere. Per cui se tutti i controlli sono andati a buon fine*/ var vars:LoadVars = new LoadVars(); /*creiamo un nuovo oggeto LoadVars con nome variabile "vars" che ci servirà ad inviare i dati al file PHP*/ /*l'oggetto vars può immagazzinare una sorta di attributi che servono da contenitore per i dati da inviare*/ vars.modello=modello; vars.mail=mail; vars.note=note; vars.taglia=taglia; vars.colore=colore; vars.quantita=quantita; vars.esito=""; vars.sendAndLoad("invia.php",vars,"POST");/*inviamo il nostro oggetto vars con il metodo sendAndLoad('file PHP che riceverà ed elaborerà i dati, nel nostro caso "invia.PHP"','oggetto che riceverà il risultato, nel nostro caso lo stesso vars','metodo di invio, nel nostro caso POST')*/ vars.onload = function(success){ /*questa funzione viene eseguita quando si verifica l'evento onload su vars, ovvero quando il nostro oggetto vars riceve la risposta dal file "invia.PHP*/ if(success){ /*se i dati sono stati passati correttamente e se l'e-mail è stata inviata, viene mostrato un messaggio di successo e vengono resettati i campi*/ if(vars.esito=="success"){ output.text="Invio avvenuto correttamente"; modello=""; mail=""; note=""; taglia=""; colore=""; quantita=""; } else output.text="Errore invio, riprovare";/*altrimenti viene mostrato un messaggio di errore*/ } else output.text="Errore invio, riprovare";/*altrimenti viene mostrato un messaggio di errore*/ }//fine funzione }//fine if else output.text="Compilare i campi correttamente";/*se il controllo sui campi non va a buon fine ricordiamo all'utente di compilare i campi correttamente*/ }//fine on(release)
praticamente la mail viene inviata correttamente, ma il flash non riceve il risultato success e quindi non svuota i campi e non visualizza il messaggio di conferma. Se non compil correttamente i campi alo stesso modo il flash non visualizza il messaggio di errore e la mail non viene inviata.Codice PHP:<?php
$to = "email";
$mittente = strip_tags($_POST["mail"]);
$oggetto = "ordine ricevuto da $mittente";
$messaggio = "Modello: ". strip_tags($_POST["modello"]) . "\nColore: ". strip_tags($_POST ["colore"])."\nQuantità: ". strip_tags($_POST["quantita"]). "\nTaglia: ". strip_tags($_POST["taglia"]) . "\nNote: ". strip_tags($_POST ["note"]);
$headers = "From: <$mittente>";
if(!mail($to, $oggetto, $messaggio, $headers)) die("&esito=errore&");
else echo "&esito=success&";
?>
Come risolvo?
Grazie e scusate per l'ennesima discussione sul passaggio variabili

Rispondi quotando