Creare un Form Mail: Flash+Php

257

In questo tutorial cercherò di darvi un aiuto a risolvere uno dei problemi di chi deve affrontare la creazione di un Form via Flash. La creazione di questo Form prevede, un componente realizzato in Flash ed uno script in Php. Poiché si sa che Flash da solo non può interagire, lo aiuteremo con il supporto di un semplice script in Php. La lezione è suddivisa in 5 punti così che vi sarà più facile capire il funzionamento di esso…


Form Email

ATTENZIONE: Vi invito a provare il tutorial tenendo conto che in alcuni casi, spesso causati da requisiti di sistema, il form mail non può funzionare. Nel caso, provate anche a controllare soluzioni presenti tra i commenti.

1) Aprire un documento vuoto ed iniziare a creare 4 campi di testo “input”. Dare a ciascun campo un nome “istanza” che servirà allo script di riconoscere all’interno del filmato l’ordine dei campi.
Primo campo dare come nome istanza Nome ,secondo campo Cognome, terzo campo Email, quarto campo Richiesta. Ora creiamo un pulsante per l’invio dell ‘email e diamo come nome istanza pulsInvio.

2) Dopodiché inseriamo in un fotogramma vuoto il seguente ActionScript, facendo attenzione a sostituire il vostro url dello script con i vostri dati, dove vedete che il codice è scritto in grassetto :

stop();
pulsInvio.onRelease = function(){
var sendMail:LoadVars = new LoadVars();
sendMail.nome = Nome.text;
sendMail.cognome = Cognome.text;
sendMail.mittente = Email.text;
sendMail.richiesta = Richiesta.text;
sendMail.destinatario = 'Email destinazione messaggi';
sendMail.onLoad = function(success){
if(success){
Nome.text = '';
Cognome.text = '';
Email.text = '';
Richiesta.text = '';
mcMsg.mcTxt.txtMsg.text = this.controllo;
mcMsg.play();
}
}
sendMail.sendAndLoad('Url script php che genera l'email', sendMail, 'POST');
}

Come potete vedere il seguente ActionScript è molto semplice da capire , ora spiegherò in linea generale il suo funzionamento : Inseriamo innanzitutto l’azione ‘stop’ per fermare la ‘time line’, poi scriviamo il nome dell’ istanza del pulsante Invio poiché l’ActionScript gira attorno a quest’ultimo , accanto a pulsInvio come si nota c’è l’azione onRelease che serve per comunicare al pulsante che al rilascio del mouse su di esso deve partire tutta l’azione.
Dopo di chè creiamo una nuova variabile che chiamiamo SendMail cosi che appena la richiamiamo con l’azione sendAndLoad questa raggruppi tutti i nomi dei campi input e l’invii allo script che provvederà poi ad inviare l’email alla nostra posta.
Ora dove c’è l’azione sendMail.destinatario inseriamo la nostra email , mentre nell’ultima azione scriveremo l’url di dove è situato lo script all’interno del nostro sito preferibilmente nella stessa cartella dove è situato il filmato flash.

3) Ora provvediamo a creare un degno script che PRIMO funzioni e SECONDO sia di facile intuizione. Aprire il comune Notepad di Windows e scrivere il seguente codice dopodiché salvarlo con il nome email.php . Anche questo è abbastanza semplice da capire basta che abbiate una minima base di php che vi risulterà di facile lettura e comprensione:

<?php
$nome = stripslashes($_POST['nome']);
$cognome = stripslashes($_POST['cognome']);
$mittente = stripslashes($_POST['mittente']);
$richiesta = stripslashes($_POST['richiesta']);
$sms = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Contatti</title>
</head>
<body style="margin:0px;">
<table cellpadding="0" cellspacing="0" style="height:100%;width:500px;">
<tr>
<td style="height:100%;padding:20px;vertical-align:top;">
<table>
<tr><td colspan="2">
<img src="Url della tua immagine personalizzata" alt="" />
</td>
</tr>
<tr><td width="110"><b>Nome:</b></td>
<td width="300">'.$nome.'</td></tr>
<tr>
<td><b>Cognome:</b></td>
<td>'.$cognome.'</td></tr>
<tr>
<td><b>E-mail:</b></td>
<td>'.$mittente.'</td></tr>
<tr>
<td><b>Richiesta:</b></td>
<td>'.$richiesta.'</td></tr>
</table></td></tr>
</table>
</body>
</html>';
$headers = "From: $nome $cognome <$mittente>n";
$headers .= "Content-Type: text/html; charset=iso-8859-1n";
if(mail($_POST['destinatario'], $oggetto, $sms, $headers)){
echo '&controllo=invio avvenuto con successo.';
}
else{
echo '&controllo=errore: e-mail non inviata.';
}
?>

4) Ora basta mettere online sia il file Swf che lo script et voilà il gioco è fatto. Se avete avuto problemi non esitate a commentare se eventualmente uno dei passaggi non vi è stato chiaro.

5) Il quinto passaggio non esiste quindi testatelo e sperate in bene.


Precisazioni del 06.07.2006

Viste le difficoltà accadute in diversi casi, l’articolo è stato riveduto e corretto, e anche semplificato nel codice.
In più per facilitarvi al massimo la vita, sono stati creati dei file esempio che potete scaricare direttamente da qui:

Il file da scaricare è compatibile FlashMX 2004.
Bisogna anche segnalare che in rari casi, si è potuto verificare che alcuni server non hanno permesso il “colloquio” tra Flash ed il PHP, non facendo funzionare il Form.