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
Senza categoria

43 Commenti
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!
FeedRSS
Ti è piaciuto l'articolo? Tieniti sempre aggiornato! Iscriviti ora ai Feed RSS.
Ti sarà inviata in modo totalmente gratuito una mail con tutti i nuovi articoli!
Scrivi un Commento
tag abilitati: <code> </code> | <a href=""> </a> | <strong> </strong> | <i> </i>