Una Newsletter è l’insieme di informazioni relative a una macrocategoria periodicamente inviata per posta elettronica, colui che si iscrive riceverà queste informazioni e potrà cancellarsi in qualsiasi momento.
Come creare e gestire una Newsletter in Flash, salvando gli iscritti su un database con la possibilità, qualora l’iscritto voglia, di cancellarsi?
Bella domanda
Ovviamente Flash deve appoggiarsi a un linguaggio dinamico esterno, come in questo caso il PHP.
Ecco i file che andremo ad analizzare, e come al solito vi ricordo, che al fondo dell’articolo troverete i file sorgenti:
Procediamo per ordine:
ecco la query, creo la tabella newsletter con un campo email di tipo varchar di dimensioni 100 per sicurezza
CREATE TABLE `newsletter` (
`email` varchar(100) NOT NULL default '',
PRIMARY KEY (`email`)
)
Creata la tabella nel database andiamo a creare il file di connessione, che ci permetterà di interagire con il database
connessione.php
$host = 'localhost'; //nome dell'host su cui risiede il database
$user = 'nome utente'; //nome utente con cui connettersi al database
$password = 'password'; //password utente con cui connettersi al database
$database = 'nomedatabase'; //indicare il database cui connettersi
$db = mysql_connect($host, $user, $password) ||die("Impossibile connettersi al server $host");
mysql_select_db($database, $db)||die("Impossibile connettersi al database $database");
Il nome del Database in questo caso è my_juliuswebdesign
newsletter.fla
primo frame
//per sicurezza cancello tutti i contenuti appena avviato
error = "";
msg = "";
email = "";
Creo un movie clip di nome istanza error per gestire gli errori
//Eseguo Debug sulla mail
onClipEvent (enterFrame) {
if (_root.error == "invalid email") {
_root.msg = "Email non valida";
}
if (_root.error == "invalid email delete") {
_root.msg = "Email non valida";
}
if (_root.error == "email delete") {
_root.msg = "Email Cancellata!";
}
if (_root.error == "duplicate email") {
_root.msg = "Email duplicata";
}
if (_root.status == "ok") {
_root.msg = "Email aggiunta!";
}
}
Sul pulsante Iscriviti
//Invio la mail tramite GET al file subscribe.php
on (release) {
error = "";
loadVariablesNum("subscribe.php?email="+_root.email, 0, "GET");
}
Sul pulsante Cancellati
//Invio la mail tramite GET al file deleted.php per eliminarla
on (release) {
if (email != "") {
loadVariablesNum("deleted.php?email="+_root.email, 0, "GET");
error = "";
email = "";
} else {
msg = "Email non inserita!";
}
}
Andiamo a vedere i files php
Iniziamo con subscrive.php che verificherà l’inserimento corretto della mail e invierà la conferma di iscrizione alla casella postale.
<?php
include('connessione.php');
//controllo se la email è valida
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $_GET["email"]))
{
print "error=invalid email";
die();
}
//mi creo un file di testo per effettuare in seguito il debug
$fp = fopen("debug.txt", "r");
$content = fread($fp, filesize("emails.txt"));
fclose($fp);
if (eregi($email, $content))
{
print "error=duplicate email";
die();
}
$fp = fopen("debug.txt", "a+");
if (fwrite($fp, "".$_GET["email"]."\n"))
print "status=ok";
$email=$_GET["email"];
//inserisco nel database la mail corretta
mysql_query("INSERT INTO newsletter (email) VALUES ('$email')") or die(mysql_error());
//invio un mesaggio ($messaggio) alla casella di posta per confermare l'iscrizione
$messaggio="Grazie per esserti iscritto alla Newsletter di Julius!";
$result = mail( $email, "Iscrizione alla Newsletter", $messaggio );
fclose($fp);
?>
deleted.php cancella la mail inserita dopo aver verificato la validità, avvertendoti di avvenuta cancellazione sulla casella di posta.
<?php
include('connessione.php');
$email=$_GET["email"];
//controllo se la email è valida
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $_GET["email"]))
{
print "error=invalid email delete";
die();
}
print "error=email delete";
//cancello la email passata tramite GET
mysql_query("Delete From newsletter where email ='$email'") or die ("non trovo la tabella");
//invio un mesaggio ($messaggio) alla casella di posta per confermare la cancellazione
$messaggio="Come da te richiesto, sei stato cancellato dalla Newsletter di Julius!";
$result = mail( $email, "Cancellazione alla Newsletter", $messaggio );
?>
Ora per visualizzare tutte le emails iscritte alla Newsletter ci basterà stampare il contenuto della tabella newsltetter all’interno del database.
Notate bene, ce una variabile $tuamail che dovrà essere impostata con una vostra mail, al fine di poter avere un controllo sulla effettiva partenza delle vostre newsletter, inviandoci a noi stessi la stessa.
emails.php
<?php
include('connessione.php');
$tuamail=tuamail@gmail.com; //inserire la propria mail, in questo modo potrai controllare l'effettivo invio delle tue newsletter in quanto le riceverai tu stesso
//Entro nel database nella tabella newsletter e stampo tutte le email in ordine crescente
$risultato=mysql_query("Select* from newsletter ORDER BY `email` ASC ") or die ("non trovo la tabella");
echo"$tuamail";
$numRecord=mysql_num_rows($risultato);
if($numRecord!=0){
while($record=mysql_fetch_array($risultato)){
echo ";".$record['email'].""; //aggiungo una virgola per separare le emails
}
}
?>
Scarica il sorgente
Guarda il Tutorial
ABC, Cinema, Database, Design, Flash, HTML, Newsletter, PHP, Sviluppo, Tutorial
46 visite

tag abilitati: <code> </code> | <a href=""> </a> | <b> </b> | <i> </i>
Iscriviti ai Feed RSS dei commenti di questo articolo
Trazaman
7 giugno 2007 alle 5:06 am
Grazie, troppo gentile!!!
Gianni
7 giugno 2007 alle 10:02 am
Ho trovato molto interessante l’articolo, l’uso di php e flash è un campo molto allettante per poter fare molte cose.
Ho constatato che non si riesce a inserire il carattere @ nella form, questo è un piccolo problema di flash…
ciao,
Gianni
Julius
7 giugno 2007 alle 10:11 am
@Gianni sinceramente inserisco normalmente la @ senza problemi…
fammi capire meglio il problema
Gianni
7 giugno 2007 alle 22:28 pm
il problema è con il browser Firefox, e si riscontra nell’inserimento nella pagina newsletter.htm, ho avuto un problema del genere in passato ed ho aggiustato tutto con l’inserimento di “system.useCodepage;” all’inizio dell’actionscript
ciao e di nuovo complimenti per questo utilissimo sito,
Gianni
Julius
7 giugno 2007 alle 23:34 pm
@Gianni hai super raggione infatti mi ero dimenticato
comunque altri modi per scavalcara questo problema è non pubblicare il filmato flash in modalità trasparent, incorporare i caratteri oppure digitare in FF SHIFT+2
ciao
Federico
10 giugno 2007 alle 3:53 am
grazie mille.
Spiegazione perfetta, disponibilità incredibile, sei il massimo!
Julius
10 giugno 2007 alle 10:34 am
@Federico grazie per i complimenti
un saluto
ciccio
14 giugno 2007 alle 12:00 pm
scusa nn c’è il codice html
Julius
14 giugno 2007 alle 12:09 pm
Il codice HTML di pubblicazione del filamato Flash può essere o il tag OBJECT, il quale può essere genrato automaticamente da Flash su FILE>> Pubblica
Oppure utilizzi questo metodo
ciao
sidvizioso
1 agosto 2007 alle 22:33 pm
il tuo esempio online funziona bene, mentre il sorgente scaricato non va, il tasto iscriviti non fa comparire nessun messaggio ma scrive l’email nel file debug.txt senza però inserire la mail nel DB…mentre il tasto cancellati fa comparire i vari messaggi ma non cancella l’e,mail dal file debug.txt.. ovviamente senza inviare nemmeno le mail di notifica… come posso risolvere? questo è un semplicisssssimo form se fosse solo in php ma ho la necessità in questo momento di farlo interagire con flash..spero mi potrai dare una mano…
grazie
sidvizioso
1 agosto 2007 alle 23:09 pm
scusami…funziona…l’unica cosa che non va è che non compare il messaggio che dice che una mail è già presente nel db…e spesso devo fare il refrewsh della pagina per ricomparire in modo corretto i messaggi…
Julius
2 agosto 2007 alle 9:19 am
La funzione che ti avverte di avere gia inserito una mail funziona solo se la mail viene inserita succesivamente…
Mentre se la mail viene inserita dopo un po di tempo, viene solo sovrascritta
DanFlash
12 agosto 2007 alle 9:56 am
Ciao Julius
ho uno spazio su di un server con un solo database mysql.
esiste la possibilità di una newsletter in flash che non utilizzi un database
ma, ad esempio file di testo ?
Jaso
29 agosto 2007 alle 12:00 pm
Ciao ho 1 problema l’iscrizione e la cancellazione funzionano benissimo solo 1 cosa nn ho capito :S come si fa ad inviare le Email a quelli iscritti? I’m a N00b
francesco
22 settembre 2007 alle 13:58 pm
Hai ragione ma l’ultima discussione su questo tutorial risale al 29 agosto e allora ho guardato nella sezione messaggiamo e ho visto che ieri avevi risp. ad una ragazza, comunque ora lo so!!
Ho modificato il file connessione.php, ho messo host user pass dbname ma mi da questo errore:
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource on line 7
Impossibile connettersi al database Sql77757_4
Julius
22 settembre 2007 alle 14:08 pm
@DanFlash
Il databse serve al fine di poter cancellare le mails che non aderiscono più, in un file di testo non è possibile individuare una data email e cancellarla tutto qui…
@Jaso
Qusta è una gestione di una Newsletter, ovvero vengono archiviate le mail, una volta lette le mail tu dovresti copiarle e inserirle nel campo destinatari di una tua casella di posta… inviare la news
@francesco
controlla di avere i permessi, avvolte la configurazione di database avviene attraverso la concessione di user e password
dai uno sguardo qui
francesco
22 settembre 2007 alle 16:05 pm
grazie ci sono riuscito!!
Nemo
4 ottobre 2007 alle 23:32 pm
perche io non riesco a farlo funzionare??
premetto che sono un po inesperto di php,
pero ho messo nomeutente e pass e il nome del data base sul file connesione
e ho messo tutto su un dominio tripod.
quando vado a mettere una email però non fa nulla dove sbaglio? devo aggiungere qualcosa????
help me!
Julius
5 ottobre 2007 alle 9:22 am
Non fa nulla in che senso? nessun messaggio di corretto inserimento? Non ti inserisce la mail nel database?
Nemo
5 ottobre 2007 alle 19:51 pm
si esatto nessun messaggio di corretto inserimento e non mi scrive nulla nel data base
ROBY
17 ottobre 2007 alle 15:36 pm
Ciao julius intanto complimenti vivissimi sei un grande
)
Cmq volevo chiederti ho dei dubbi chiarendoti ke nn sono un programmatore
ma un grafico quindi ho molte lacune ke voglio colmare
nel tuo tutorial sulla newsletter ho capito un po tutto
ma una cosa nn mi è chiara (ti sembrera banale ma x me nn lo
nel file di connessione
————————————
$host = ‘localhost’; //nome dell’host su cui risiede il database
————————————
non capisco si riferisce al mio ip oppure all’host (nel mio caso aruba)
poi un ultimo dubbio i file vanno divisi in cartelle particolari del server del dominio?
Grazie aspetto cn ansia tua risposta
Nemo
19 ottobre 2007 alle 21:19 pm
scusate ma qualcuno ci riesce a farlo funzionare su aruba???
perche a me non va non so dove sbaglio metto il nome utente la pass il nome database ecc…
help me please
Modulo per newsletter - Page 3 - Forum Flash CS3
22 ottobre 2007 alle 13:33 pm
[...] sinceramente
stars7
14 marzo 2008 alle 18:31 pm
ciao Julius…
con emails.php mi risulta sempre
Impossibile connettersi al server localhost
non ho capito veramente cosa mettere….le ho provate tutte
il mio dominio è su solodomini.com
il database funziona e vedo gli indirizzi tramite il pannello di controllo del dominio…please help
Julius
14 marzo 2008 alle 19:23 pm
hai mai usato il database del tuo dominio?
Devi configurare la connessione del db con php controlla bene di aver inserito i dati
Nelll’articolo ci sono dei link utili per configurare la connessione
stars7
15 marzo 2008 alle 4:34 am
Julius grazie per la risposta…
in realtà non capisco cosa intendi quando dici se ho usato il database…io l’ho creato con nome utente e password…ho creato la tabella newsletter
ho solo aggiunto al file connessione.php altrimenti mi restituisce tutto il testo invece di eseguire il codice… e i dati sono corretti nel file connessione…boh
stars7
15 marzo 2008 alle 4:35 am
volevo dire… ho aggiunto …?php ? con le
Julius
15 marzo 2008 alle 11:55 am
Quanto dico “hai usato il database” vuol dire se hai usato l’interfaccia di MySql per creare la tabella in cui verranno inseriti i dati…
stars7
15 marzo 2008 alle 18:04 pm
con “ecco la query, creo la tabella newsletter con un campo email di tipo varchar di dimensioni 100 per sicurezza..” allora la prima volta seguendo questo ha dato errore e anche la seconda…quindi la tabella l’ho creata ma non così…in ogni caso ora so come usare il linguaggio sql per isolare il campo email…magari aggiungere anche un ; alla fine di ogni email e copiarmi tutto da un’altra parte…cmq grazie 1000 Julius i tuoi tutorials sono fantastici.ciao
Amedeo
20 marzo 2008 alle 12:09 pm
ciao julius ho lo stesso problema che già ti era stato segnalato ma non ho trovato risposta e non sono riuscito a risolverlo ti prego di aiutarmi . . . .
il tuo esempio online funziona bene, mentre il sorgente scaricato non va, il tasto iscriviti non fa comparire nessun messaggio ma scrive l’email nel file debug.txt senza però inserire la mail nel DB…mentre il tasto cancellati fa comparire i vari messaggi ma non cancella l’e,mail dal file debug.txt.. ovviamente senza inviare nemmeno le mail di notifica… come posso risolvere? questo è un semplicisssssimo form se fosse solo in php ma ho la necessità in questo momento di farlo interagire con flash..spero mi potrai dare una mano…
grazie
Grazie mille
Amedeo
marchino
20 marzo 2008 alle 12:22 pm
Ma io l’avevo utilizzata per un progetto ora però non più online è non mi ha dato problemi..
E’ probabile che hai problemi di configurazione con database MySQL
Comunque se non hai bisogno di flash per creare questa newsletter ti propongo questi script
Se cerchi con google “newsletter php” ne trovi molti altri
Amedeo
20 marzo 2008 alle 12:37 pm
scusate riscrivo il messaggio come dicevo è tutto ok e ho assolutissimamente bisogno di flash
grazie mille
Amedeo
20 marzo 2008 alle 12:55 pm
ohi è tutto ok a livello di database e mysql ma continua non funzionare scusate ma sto in ufficio e nello sbrigarmi a scrivere non mi spiego bene
grazie mille
Amedeo
20 marzo 2008 alle 19:48 pm
c’è qualcuno che può aiutarmiiiiiiiiiiiiiiiiiiiiiiiii . . . .pleaseeeeeeee
Julius
20 marzo 2008 alle 19:49 pm
ciao riesci a scrivermi un link del tuo progetto con la newsletter cosi provo a trovare eventuali errori
Amedeo
20 marzo 2008 alle 19:51 pm
ok prova qui
http://xxxxxx
grazie mille julius
Julius
20 marzo 2008 alle 22:35 pm
Hai provato con un altro dominio?
Ho notato che con il file subscribe.php è possibile visualizzare i dati del tuo database semplicemente inserendo l’indirizzo, è strano…
PS: ti ho cancellato il link per motivi di privacy
massi
29 marzo 2008 alle 20:38 pm
ciao julius…
mi interesserebbe qst newsletter… ma nn ho capito… i parametri da inserire nel file connessione.php !!
supponiamo ke io abbia il dominio http://www.esempio.it sul quale la cartella ‘newsletter’ nella quale vi è il sorgente….
cosa devo mettere:
in ‘localhost’?
in ‘nome utente’?
in’password’?
in ‘nomedatabase’?
dopo aver modificato qst 3 parametri.. devo fare altro?
help me please!
Julius
30 marzo 2008 alle 18:56 pm
i file li carichi tutti insieme in un tuo spazio web
per quanto riguarda la connessione al db devi usa uno spazio che ti permetta di gestire MySql…
Dove viene descritto il file connessione trovi dei link utili…
Amedeo
31 marzo 2008 alle 10:47 am
ciao
come ti avevo già segnalato il 20 marzo continuo ad avere lo stesso problema nonostante abbia seguito il tuo consiglio di provare su un altro dominio . . .ottenendo lo stesso identico risultato compreso il fatto che in subscribe.php continuo a visualizzare i dati del mio database e constatato che non va ad inserire i dati nei campi della tabella mentre nel file debug.txt scrive regolarmente.
grazie mille
Julius
31 marzo 2008 alle 19:22 pm
E’ molto strano! con quale dominio hai provato?
Tanto per sfatare questo dilemma, vuoi provare con altervista.org? (è gratuito, fai una prova solo per verificare quale sia il problema)
Amedeo
1 aprile 2008 alle 8:56 am
ciao,
guarda io uso sempre tophost, ma non ha funzionato, ho provato con register.it ma idem, ora seguendo il tuo consiglio ho provato con altervista ma il risultato è identico. non c’è un modo per parlare direttamente con te in modo di risolvere il problema??
Grazie Mille
Amedeo
teo
6 aprile 2008 alle 22:55 pm
Scusate l’intromissione, me per caso non è che i problemi derivino da dai permessi sulla cartella che contiene il db?
mi è capitato di avere problemi simili, risolti setttando i diritti a 777.
magari è una scemenza ma visto che nel mio caso cosiì ho risolto…
ciao!
marco l.
26 agosto 2008 alle 13:52 pm
Ciao Julius, bentornato.
Premetto che non conosco Php e MySql.
Ho un filmato flash con trasparenze in cui vorrei usare Php+MySql per newsletter, login e altro. Il sito è ospitato su Aruba e posso scegliere il puntamento tra due server Windows 2003 e Linux.
Su server windows il filmato gira bene ma ho problemi di Php+Mysql (credo per una questione di permessi CHMOD che non riesco a cambiare, i file sono tutti 666, le cartelle 777, es. il file debug.txt non si genera).
Su server linux il filmato si blocca sempre più o meno allo stesso punto. Php sembra funzionare, la connessione a MySql funziona ma non quella al database che contiene “newsletter”. Cliccando su “iscriviti” viene generato il debug.txt ma sullo schermo non succede niente, la mail digitata rimane li e non viene registrata nessuna informazione sulla tabella “newsletter”.
Per semplificare ti faccio queste domande:
SERVER:
-Ci sono incompatibilità per la riproduzione di filmati complessi swf su server linux?
-Puo’ essere un problema di server linux o di browser? (il filmato si inchioda con tutti i browser).
- Questa newsletter può funzionare su server Windows 2003 con liguaggio Asp nativo ma con “anche” il supporto del linguaggio php 4.xx e con i permessi che sopra ho descritto? (estensione abilitata .php versione 4.4.1, safe_mode off, Dcom e COM disabilitati – non e’ possibile quindi connettersi a db access da php usando adodb.connection – GD lib e ImageMagick attive solo su hosting Linux)
CONNESSIONE MySQL
-Perdona l’ignoranza ma lo script “connessione.php” non dovrebbe essere aperto e chiuso dal maggiore e minore con punto interrogativo? (aprendo il file “connessione.php” dal browser compaiono i parametri di connessione con tanto di password).
- Sotto è riportato lo script di connessione da completare che mi hanno fornito, ho notato che è differente dal tuo, può essere questo il motivo della mancata connessione al database?
$dbhost = “62.149.150.XX”;
$dbname = “nomedatabase”;
$dbuser = “tuonomeutente”;
$dbpasswd = “tuapassword”;
Spero che tu mi possa aiutare.
Ciao.
marco l.
26 agosto 2008 alle 18:46 pm
Ciao Julius, ho risolto con la connessione a MySql. Le email vengono salvate sul DB e viene inviato il messaggio di avvenuta registrazione o di cancellazione sulla casella di posta.
Ho utilizzato questo script:
$dbhost = “62.149.150.XX”;
$dbname = “nomedatabase”;
$dbuser = “tuonomeutente”;
$dbpasswd = “tuapassword”;
$connessione=mysql_connect($db_host,$db_user,$db_password);
mysql_select_db($db_database,$connessione);
Però su flash quando si clicca su Iscriviti non compare nessun messaggio, il testo inserito viene registrato e rimane li. Se clicchi su cancellati, cancella l’indirizzo dal campo di testo e dall’elenco del database ma non compare nessun messaggio. L’unico messaggio che compare è solo “Email non inserita” nel caso di mancato inserimento.
Invece il filmato con trasparenze (pubblicato per flash player 8 e 9, actionscript 2) continua a bloccarsi su server Linux, puoi dirmi qualcosa a riguardo?
Ciao!
Julius
27 agosto 2008 alle 13:00 pm
@marco ciao ho visto che hai risolto da solo bravo!
Per quanto riguarda linux non saprei dirti, purtroppo non ci lavoro..
marco l.
27 agosto 2008 alle 19:37 pm
Ciao Julius, ho ancora questo problema quando si clicca su Iscriviti non compare nessun messaggio, il testo inserito viene registrato e rimane li. Se clicchi su cancellati, cancella l’indirizzo dal campo di testo e dall’elenco del database ma non compare nessun messaggio. L’unico messaggio che compare è solo “Email non inserita” nel caso di mancato inserimento. Le informazioni vengono registrate nel database ma sembra che non ritorni risposta a flash.
Ciao.
J.Lankart
16 gennaio 2009 alle 15:16 pm
Ciao Julius!!
Ho visto solo oggi questo articolo sulla newsletter e mi rendo conto che è una cosa praticamente di Agosto, però volevo chiederti se fosse possibile avere questa cosa con un DB testo anzichè mysql!! si può fare?
Grazie!!!!
Rockyweb
3 febbraio 2009 alle 2:32 am
ciao juli sono un tuo ammiratore da parekkio tempo ho risolto un mukkio di problemi grazie ai tuoi tutorial! ma adesso mi son bloccato davanti ad una newsletter con interazione da php a mysql in questo caso la seguente! lo scaricata o messo tutte le password nome database o creato la tabella anke perche su aruba mettevo la query ma non me la accettava quindi o dovuta crearla in manuale dopo aver realizzato i 2 pulsanti aver settato il file connessione ed email! clikko su registrati e non ricevo nessuna risposta nella var: msg ti prego! dammi una mano xke sto uscendo pazzo anke perke sembra un peccato aver acquistato mysql presso aruba! la versione risiede su apache 2.0 linux! ti prego aiutami xk sto uscendo pazzo ………
webmaster@pvweb.it