Ciao a tutti,
sto modificando un form per invio mail tramite supporto con PHP.
Il problema: vorrei che cliccando il bottone SEND in flash (sul fr_n°1), oltre ad eseguire questo codice:
on (release) {
sendMail();
}
eseguisse la verifica su una variabile di testo dinamico (s_res = questa verifica se il server ha inviato la mail e nel box di testo compare la scritta MAIL INVIATA); la verifica se positiva deve far proseguire l'animazione al fr_n°2 dopo un tempo prestabilito di 3sec,
altrimenti passati 5 sec di tentativi deve mandare al fr_n°3 dove porrò il messaggio PROBLEMI DI CONNESSIONE AL SERVER !!!.
Vi posto i codici Flash e PHP
----------------------------------------
Codice PHP
----------------------------------------
<?
// # DESCRIZIONE VARIABILI PASSATE IN POST (O GET) ALLO SCRIPT PHP:
// $email -> indirizzo email del mittente, l'utente che compila la form
// $message -> messaggio del mittente
// $sender -> nome e cognome del mittente (se specificati)
// $addr -> indirizzo (quello fisico. ricordate che la gente non esiste solo su internet :-D ) del mittente (se specificato)
// # FINE DESCRIZIONE
//
//
$dest="mio_indirizzo_mail@isp.it"; // questo sarà l'indirizzo a cui recapitare (elettronicamente, stavolta) la mail
$subject="La tua posta webmail"; // questo è il subject della mail. decidete voi cosa scriverci
//
//
// la variabile headers ($hearders, per php) conterrà gli headers per la formattazione della mail
// gli headers sono delle vere e proprie testate (non colpi dati con la fronte)
// in essi sono contenuti i dati che formatteranno il testo e lo renderanno "masticabile" ad un mail server.
//
// costruiamo il body della mail
// nel nostro esempio abbiamo bisogno di avere i dati del mittente (indirizzo ecc)
// costruiamo...
//
$mbody="<html><body>";
$mbody.=$message."
";// nota: .= è come in flash dire variabile+=qualcosa
// nel nostro caso:
// variabileStringa.=altraStringa
$mbody.=$addr;
$mbody.="</body></html>";
//
// si, avete ragione...
// è una pagina formattata in html
//
//echo $mbody;
//
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$email."\r\n";// la variabile $email farà parte di quelle passate in post allo script
$headers .= "Reply-To: ".$email."\r\n";// come sopra
//
// una volta terminata la stesura degli headers, avremo la mail bella e pronta.
// rimane solo l'ultima operazione: l'invio
//
mail($dest, $subject, $mbody, $headers);// invia la mail
//
//
// l'output che andremo a dare ora, cioè success=1, sarà restituito all'oggetto LoadVariables di flash
// in questo modo flash saprà che la mail è stata inviata, e potremo notificare all'utente il successo dell'operazione
// (non è bello premere un tasto e non sapere cosa sta accadendo, vero?)
//
echo "success=1"; // QUI, QUI, QUI è l'output da PHP che mi interessa!!!
//
// con ciò la parte php è finita
// technical ps:
// se il server su cui gira php non ha il settaggio dell' SMTP server, allora la mail non potrà essere invitata
?>
----------------------------------------
Codice FLASH (è posto tutto sul fr_n°1)
----------------------------------------
function sendMail() {
scrptUrl = "script.php";
// creiamo un'oggetto LoadVars
mail = new LoadVars();
// diamo all'oggetto una serie di variabili, che saranno quelle da passare allo script
mail.email = email;
mail.sender = nome;
mail.addr = indir+"
"+citta;
// in questo caso abbiamo costruito una variabile sommandone 2
// ovviamente, essendo le variabili passate in post delle stringhe, possiamo concatenarle come stringhe
mail.message = message;
// ora definiamo l'onLoad dell'oggetto
// questo viene eseguito quando l'url viene caricata completamente
// cioè alla fine delle operazioni col server
mail.onLoad = function() {
trace("server operation complete");
if (this.success) {
// questo si riferisce alla variabile "success" in output dallo script
// una volta inviata la mail
// se l'output non è ricevuto vuol dire che la mail non è stata mandata
// a voi fare un timeOut per robe del genere
// o manipolare il php per fare dei controlli intermedi
// (stimolo per voi o mancanza di voglia da parte mia? ai posteri l'ardua sententia)
s_res = "MAIL INVIATA"; ---> QUI la risposta della mia var
}
};
// e finalmente inviamo questa chiamata al server
// utilizziamo sendAndLoad in modo da mandare anche i dati
// altrimenti con soltanto load riceviamo senza inviare nulla
// che comodo Mx!!
// la sintassi di sendAndLoad è:
// lvobject.sendAndLoad(url, destinazione del response [, metodo "post" oppure "get])
// ho messo il metodo tra parentesi quadre perché è opzionale
mail.sendAndLoad(scrptUrl, mail, "post");
}

Rispondi quotando
