Form mail Flash+PHP

Actionscript per creare filmati interattivi
Regole del forum
Chi non si presenta in "Benvenuti su Atlantide" non riceverà supporto ! :non:
Apri un nuovo argomento Rispondi all’argomento
Autore Messaggio
 Oggetto del messaggio: Form mail Flash+PHP
MessaggioInviato: 23/05/2008, 22:28 
Avatar utente
Non connesso

Moderatore

Iscritto il: 31/03/2008, 11:50
Messaggi: 340
Località: Cosenza
Se avete sempre desiderato una sezione contatti nel vostro sito web e non vi siete mai accontentati di un banale mailto, questa è la guida che fa per voi.
Vediamo come realizzare un semplice, ma funzionale form mail in Flash e PHP.
Partiamo con il fatto che Flash da solo non è in grado di inviare e-mail, per cui dobbiamo appoggiarci ad un linguaggio lato-server, come PHP. Inoltre il nostro form sarà intelligente, nel senso che rileverà che tutti i campi siano stati compilati correttamente tramite 3 variabili booleane (che possono assumere o vero "true" o falso "false") check1, check2 e check3, prima di inviare i dati al nostro file PHP.
Come al solito apriamo un nuovo File Flash (Actionscript 2.0).
Inseriamo 4 livelli.
Nel livello "actions" andiamo a inserire il codice actionscript che ci serve, nel livello "sfondo" andiamo a disegnare 3 rettangoli, di cui uno molto più alto degli altri, che saranno lo sfondo dei campi di testo che andremo ad utilizzare, con le rispettive etichette.
Nel livello "campi" inseriamo 3 campi di "Testo di input" (opzione che possiamo scegliere dal pannello proprietà) facendoli compaciare con i rettangoli del livello sfondo appena disegnati. Diamo ad essi come nome variabile e come nome istanza (opzioni raggiungibili sempre dal pannelo proprietà) rispettivamente "nome","mail" e "messaggio"; inseriamo inoltre un campo di testo dinamico, al quale diamo come nome istanza e nome variabile "output" e che posizioniamo nella parte inferiore sinistra del nostro form. Esso servirà ad interagire con l'utente tramite dei messaggi.
Nel livello "pulsanti" inseriamo 2 pulsanti che creiamo preventivamente (in sostanza due campi di testo statico, con testo "invia" e "reset" che selezioniamo e cliccando il tasto F8, convertiamo in simboli "Pulsante"). Il nome da dare a questi 2 pulsanti non è rilevante; nel nostro esempio li chiamiamo invia_btn e reset_btn per semplicità. Ecco come dovrebbe presentarsi il nostro stage dopo queste operazioni:

Immagine

Un particolare del pannelo proprietà nella creazione di un campo "Testo di input":

Immagine

Creazione di un pulsante:

Immagine

Adesso selezioniamo il fotogramma chiave del livello actions, premiamo il tasto F9 che ci apre il pannello Azioni e inseriamo come codice

Codice: Seleziona tutto
I codici sono visibili solo agli utenti del forum, registrati e avrai pieno accesso alle nostre risorse


Assegnando alla proprietà useCodepage true, facciamo in modo che flash passi al file php i caratteri codificati in modo corretto. La parte restante serve ad inizializzare le variabili in gioco.
Adesso selezioniamo il pulsante invia_btn e sempre dal pannello Azioni inseriamo il seguente codice

Codice: Seleziona tutto
I codici sono visibili solo agli utenti del forum, registrati e avrai pieno accesso alle nostre risorse


Il codice per il pulsante invia è terminato. Usciamo dal pannello Azioni per un attimo, selezioniamo il pulsante reset_btn e vi rientriamo.
Inseriamo come codice

Codice: Seleziona tutto
I codici sono visibili solo agli utenti del forum, registrati e avrai pieno accesso alle nostre risorse


che serve appunto a resettare tutti i campi.
Per quanto riguarda la parte flash abbiamo finito. Possiamo già salvare e pubblicare il nostro form in attesa di creare il file "invia.php".
Apriamo un qualsiasi editor di testi, se supporta PHP è ancora meglio. Io ad esempio uso Dreamweaver.
Creiamo un nuovo file che chiamiamo "invia.php" e vi inseriamo il seguente codice:

Codice: Seleziona tutto
I codici sono visibili solo agli utenti del forum, registrati e avrai pieno accesso alle nostre risorse


Vediamo di commentarlo un pò:

Intanto i caratteri '' indicano l'inizio e la fine di uno script php. Una variabile in php viene indicata con il simbolo dollaro '$' prima del nome.
Alla variabile $to assegniamo l'indirizzo sul quale vogliamo ricevere i messaggi, a $mittente assegniamo l'indirizzo specificato dall'utente nel campo mail del form a $oggetto appunto l'oggetto del messaggio e a messaggio concateniamo insieme "Nome:" seguito dal nome che è stato specificato dal form, "Indirizzo:" seguito dall'indirizzo specificato nel form e "Messaggio:" seguito dal messaggio specificato nel form, avendo premura di andare a capo ogni volta grazie al parametro'n'. Il metodo strip_tags() elimina alcuni tag fastidiosi che verrebbero altrimenti inviati con l'email.
Visto che il metodo di invio del form che abbiamo usato è "POST" i dati nel file php li troviamo nell'array $_POST. L'array $_POST è un array associativo, ovvero un array che ci fornisce il dato corrispondente al campo che specifichiamo. Quindi se vogliamo il nome specificato nel form, non doabbiamo fare altro che richiamare $_POST["nome"], perchè 'nome' se ricordiamo bene è il nome dell'attributo del nostro oggetto vars che contiene appunto il nome del mittente. Assegniamo ala variabile $headers (che rappresenta appunto gli headers dell'e-mail che andremo ad inviare) "From: " che servirà al nostro client di posta per riconoscere il mittente.
In seguito inviamo il messaggio e facciamo un controllo sul risultato.
if(!mail($to, $oggetto, $messaggio, $headers)) die("&esito=errore&");
L'istruzione if esegue il suo contenuto se la condizione è vera. Noi vogliamo eseguire una certa operazione se l'invio dell'e-mail non è andato a buon fine e per rendere questo risultato vero usiamo l'operatore not '!' che trasforma appunto false in true e viceversa.
Qundi se l'e-mail non è stata inviata, arresta l'esecuzione del file php con il metodo die(), che ci permette inoltre di inserire un parametro che invieremo al nostro oggetto vars e nel nostro caso "errore", che sarà catturato dalla funzione che abbiamo sepcificato nel nostro form che a sua volta mostrerà un messaggio negativo. Se invece l'e-mail è stata inviata correttamente il risultato trasmesso al form sarà "success".
Naturalmente il tutto va testato su un server che interpreti php e che consenta l'invio di e-mail, altrimenti riceveremo sempre un messaggio di errore.

Non ci resta che salvare il tutto e pubblicare i file, avendo premura di inserirli nella stessa cartella.
Questo è il risultato e qui ci sono i sorgenti.
Buon divertimento!
Allegati

mail_form.rar
(12.23 KiB) Scaricato 204 volte


_________________
Voce di uno che grida nel deserto:"Preparate la via del Signore, raddrizzate i suoi sentieri"!
Profilo
  
 
 Pubblicità : Atlantide consiglia
Staff


 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 23/05/2008, 23:06 
Avatar utente
Non connesso

Amministratore

Iscritto il: 09/08/2007, 12:35
Messaggi: 1755
Località: Roma
oh ma qui andiamo sempre meglio :uz:

entro qualche giorno ci proverò a farlo !

solo una cosa mr87, che ho notato nel form da te scritto per questo sito. nel tuo foglio in php mancano gli headers, per cui avremo un mittente sconosciuto e il provider di posta non riuscirà a interpretare gran parte dei caratteri.

suggerirei di aggiungere questo :

Codice: Seleziona tutto
I codici sono visibili solo agli utenti del forum, registrati e avrai pieno accesso alle nostre risorse

_________________
Immagine
Immagine

Non rispondo a MP tecnici, usate il forum


Profilo
 E-mail WWW  
 
 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 23/05/2008, 23:19 
Avatar utente
Non connesso

Moderatore

Iscritto il: 31/03/2008, 11:50
Messaggi: 340
Località: Cosenza
Supercapocc grazie per l'osservazione, effettivamente ho tentato di fare un pò il furbo.
Domani aggiungerò alla guida il codice completo. :ciao:

_________________
Voce di uno che grida nel deserto:"Preparate la via del Signore, raddrizzate i suoi sentieri"!


Profilo
  
 
 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 23/05/2008, 23:25 
Avatar utente
Non connesso

Amministratore

Iscritto il: 09/08/2007, 12:35
Messaggi: 1755
Località: Roma
grazie a te ragazzo, ottimo lavoro :ok:

_________________
Immagine
Immagine

Non rispondo a MP tecnici, usate il forum


Profilo
 E-mail WWW  
 
 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 24/05/2008, 0:25 
Avatar utente
Non connesso

Moderatore

Iscritto il: 31/03/2008, 11:50
Messaggi: 340
Località: Cosenza
Supercapocc, dopo alcune prove ho optato per l'inserimento del solo mittente negli headers, perchè rendere l'e-mail in formato html secondo me non è necessario e poi la formattazione era disordinata. Ho aggiornato i file del tutorial.
Tu comunque modifica come meglio credi il file del sito. :ok:

_________________
Voce di uno che grida nel deserto:"Preparate la via del Signore, raddrizzate i suoi sentieri"!


Profilo
  
 
 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 24/05/2008, 2:22 
Avatar utente
Non connesso

Amministratore

Iscritto il: 09/08/2007, 12:35
Messaggi: 1755
Località: Roma
Eh si, stavo tentando di risolvere il problema della codifica dei caratteri nel testo della mail.

Il problema pare sia solo l'apostrofo, ho trovato in rete alcune argomentazioni a riguardo, in parecchi hanno questo problema. Ci torneremo sopra, promesso :uz:

_________________
Immagine
Immagine

Non rispondo a MP tecnici, usate il forum


Profilo
 E-mail WWW  
 
 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 08/07/2008, 8:56 
Avatar utente
Non connesso

Novellino

Iscritto il: 08/07/2008, 8:43
Messaggi: 7
Salve ragazzi,
mi sono appena iscritto...
ho provato il codice da voi postato...tutto ok tranne il fatto che non riesco a visualizzare nulla in output(nel testo dinamico)

Ho testato con trace() e i messaggi vengono restituiti correttamente!!!
Dove sbaglio???
aspetto vostre notizie. grazie.
Rino

Ps questo il codice associato al pulsante:(è un po' diverso l'ho adattato alle mie esigenze)
Codice: Seleziona tutto
I codici sono visibili solo agli utenti del forum, registrati e avrai pieno accesso alle nostre risorse


Profilo
 E-mail  
 
 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 08/07/2008, 10:50 
Avatar utente
Non connesso

Moderatore

Iscritto il: 31/03/2008, 11:50
Messaggi: 340
Località: Cosenza
Controlla di aver assegnato come nome variabile, nel campo "Var" del pannello proprietà, "output" al campo di testo dinamico.

_________________
Voce di uno che grida nel deserto:"Preparate la via del Signore, raddrizzate i suoi sentieri"!


Profilo
  
 
 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 08/07/2008, 11:27 
Avatar utente
Non connesso

Novellino

Iscritto il: 08/07/2008, 8:43
Messaggi: 7
si, ho messo come nome variabile e come nome istanza "output"...


Profilo
 E-mail  
 
 Oggetto del messaggio: Re: Form mail Flash+PHP
MessaggioInviato: 08/07/2008, 12:10 
Avatar utente
Non connesso

Moderatore

Iscritto il: 31/03/2008, 11:50
Messaggi: 340
Località: Cosenza
Perchè non posti il tuo file .fla così vediamo di trovare l'errore?

_________________
Voce di uno che grida nel deserto:"Preparate la via del Signore, raddrizzate i suoi sentieri"!


Profilo
  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento

Torna a Flash

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Copyright © Atlantide 2008 - Tutti i diritti riservati - Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group • Traduzione Italiana phpBB.itOttimizzato da phpBB SEO
cron