Questo sistema è utile per inviare informazioni riservate direttamente nel Database Mysql. Utilizzeremo per tale necessità il Php, essendo anche il linguaggio più diffuso. Il tutorial in questione può essere preso in considerazione sia da principianti che da esperti.
Per iniziare realizziamo un Form in Flash con i seguenti campi di input:
Dopodichè ad ogni campo testuale diamo un nome “ Variabile “ che sarà uguale a quelli citati sull’immagine cioè : “ Nome , Cognome ecc.. “ .
Nel primo frame inseriamo questo ActionScript :
System.useCodepage = true;
stop();
Ora ci serve creare una tabella all’interno del Database . La tabella avrà il seguente nome “ utenti “. Per gli sviluppatori che utilizzano MySql sarà di facile comprensione , mentre per coloro che sono alle prime armi , scrivo qui di seguito la query da inviare affinché la tabella venga sviluppata correttamente :
CREATE TABLE 'utenti' (
'nome' varchar(50) NOT NULL,
'cognome' varchar(50) NOT NULL,
'indirizzo' varchar(50) NOT NULL,
'cap' varchar(5) NOT NULL,
'citta' varchar(50) NOT NULL,
'telefono' varchar(10) NOT NULL,
'email' varchar(50) NOT NULL,
'data' datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
La tabella dovrà avere gli stessi parametri come da immagine :
Ok ora create la nostra tabella scrivo il codice ActionScript da Applicare al pulsante Invio:
// codice che associamo al pulsante
on (release){
// creiamo i due oggetti loadVars
carica = new LoadVars();
ricevi = new LoadVars();
// inseriamo le variabili nell'oggetto
carica.nome = _level0.nome;
carica.cognome = _level0.cognome;
carica.indirizzo = _level0.indirizzo;
carica.cap = _level0.cap;
carica.citta = _level0.citta;
carica.telefono = _level0.telefono;
carica.email = _level0.email;
// funzione onload: si attiva al
// completmanento del caricamento dello script
ricevi.onLoad = function (ok){
// elimina onLoad
delete this.onLoad;
// controlla che il caricamento abbia avuto
// successo
if(ok)
{
// controlla che l'inserimento abbia avuto
// successo
if(ricevi.error == "1"){_root.output.text = "Errore inserimento dati";}
else{_root.play();}
}
// l'inserimento non ha avuto successo,
// viene segnalato l'errore
else
{
_root.output.text = "Errore inserimento dati";
}
};
// carichiamo lo script PHP
carica.sendAndLoad("script.php", ricevi, "POST");
}
Molto semplice ed Intuitivo a quanto potete vedere . Dopodichè Creiamo con il nostro NotePad lo script in php che chiameremo “ script.php “ .
// Dati per la connessione al DB
$db_host = "localhost o host del vostro database";
$db_user = "username database";
$db_password = "password database";
$db_name = "vostro database";
// Connessione al DB
$db = mysql_connect($db_host, $db_user, $db_password);
$db_forum = mysql_select_db($db_name, $db);
// Query di inserimento
$query = "INSERT INTO `utenti` (nome, cognome, indirizzo, cap, citta, telefono, email, data)
VALUES ('".$_POST['nome']."', '".$_POST['cognome']."', '".$_POST['indirizzo']."', '".$_POST['cap']."', '".$_POST['citta']."', '".$_POST['telefono']."', '".$_POST['email']."', '".date('Y-m-d H:i:s')."')";
// Esecuzione query
$query_results = mysql_query($query) or die("&error=1");
echo "&stop=1";
?>
Ovviamente vi ricordo che i file devono essere tutti all’interno della stessa cartella , nella speranza che questo Tutorial vi sia stato di aiuto vi invito a restare sempre aggiornati su DesMM.com.
Buona Programmazione
Non invia i dati…
Testa per bene il tutorial i dati vengono inviati
“Testa per bene il tutorial i dati vengono inviati”
no testalo bene tu prima di scriverlo:
carica.sendAndLoad(“script.php”, receiver, “POST”);
receiver non viene mai istanziata, semmai ricevi.
ciao 🙂
Ciao ho corretto la riga in:
carica.sendAndLoad(“script.php”, ricevi, “POST”);
Come mi ha suggerito Virpel ho messi “ricevi”
ciao
salve, sto tentando di creare un database per un sito web che devo realizzare ma quando in mysql vado a costruire il database come sopra descritto mi dice che c’è un errore e questo errore non mi fa costriure il database perchè mi accade questo? vorrei che qualcuno mi risolvesse questo mistero
Mi spiace , ma si vede che la versione del database che hai è differente da quello che io ho postato ti invito a postare la versione del database mysql che hai per fare in modo di aiutarti . Buona Notte
grazie la versione che ho è la 5.2 se mi puoi aiutare mi fai un grandissimo favore
HO RISOLTO IL PROBLEMA SCABIAVO LE PARENTESI TONDE PER GRAFFE E NON METTEVO LA PRIMARY KEY E IN PIU’ MANCAVA UNA VIRGOLA DOPO NOT NULL HO CORRETTO TUTTO E LA TABELLELLA MI ESCE COSI:
mysql> CREATE TABLE UTENTI (
-> id int(11) NOT NULL primary key,
-> nome varchar(20) NOT NULL,
-> cognome varchar(20) NOT NULL,
-> indirizzo varchar(20) NOT NULL,
-> cap varchar(5) NOT NULL,
-> citta varchar(20) NOT NULL,
-> telefono varchar(15) NOT NULL,
-> email varchar(50) NOT NULL,
-> data datetime NOT NULL);
Query OK, 0 rows affected (1.69 sec)
mysql> DESCRIBE UTENTI;
+———–+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+———–+————-+——+—–+———+——-+
| id | int(11) | NO | PRI | | |
| nome | varchar(20) | NO | | | |
| cognome | varchar(20) | NO | | | |
| indirizzo | varchar(20) | NO | | | |
| cap | varchar(5) | NO | | | |
| citta | varchar(20) | NO | | | |
| telefono | varchar(15) | NO | | | |
| email | varchar(50) | NO | | | |
| data | datetime | NO | | | |
+———–+————-+——+—–+———+——-+
9 rows in set (0.17 sec)
VOLEVO CHIEDERTI SE IL CAMPO DEFAULT HA LA STESSA FUNZIONE DELL’AUTOINCREMENT.
GRAZIE IN ANTICIPO
Sono due funzioni diverse . Comunque spero che ora lo script ti funga. Ciao
Sto provando questo script su http://www.graphoskop6054.com/kiss/iscrizione.swf
ma alla pressione del pulsante invia tutto rimane inerme, quale può essere il problema? (tenendo conto che lo script è praticamente copia-incollato)
Vorrei sapere se è possibile avere un tutorial per fare l’inverso, ovvero leggere i dati da un database e visualizzarli in flash con dei movieClip divisi per record…
La connessione la so fare, prendo i dati con flash dall’echo finale….
Ma non riesco a dire a flash come creare un MovieClip per ogni record ed inserirci il testo preso dal record..
Qualcuno lo sa fare o sa un tutorial da dove sbirciare?
Grazie.
Prova ad andare all’ indirizzo http://www.actionscript.it/showContent.cfm?id=90
mh a me da un errore:
Description:
The identifier ‘loadVars’ will not resolve to built-in object ‘LoadVars’ at runtime.
Source:
carica = new loadVars();
se qualcuno mi sa aiutare lo ringrazio in anticipo ;P
ciaoz
mi dà questi errori in output o.0
Target non trovato: Target=”undefined” Base=”_level0″
Target non trovato: Target=”undefined” Base=”_level0″
grazie se qualcuno mi aiuterà 🙂
in effetti mi è parso che sia stato pubblicato senza nemmeno essere testato, LoadVars si scrive con la maiuscola quindi non poteva funzionare… ma anche corretto questo errore non va, alla premuta del bottone aspetta un po ma quando la barra di stato del browser (firefox:è questo il problema?) mi dice “completato” vado a vedere sul db e non c’è scritto niente…
sono desolato, sto cercando da settimane e in internet non c’è UN SOLO tutorial funzionante…
anche io ho lo stesso errore di Simone… ma alla fine avete rinunciato???
ciao, vedo che tutti hanno dei problemi ma non si risolvono. Ho, infatti, copiato tutto il tutorial, analizzato punto per punto, seguito tutti i problemi postati ma il risultato è, cliccando su invia dati non accade assolutamente NULLA. Qual’ è realmente il problema ?
Come mai Virpel dice che i dati vengono inviati ?
Inoltre questo è lo stesso identico tutorial presente su webmasterpoint.it con la sola differenza dei comandi da inserire nel primo frame (quì ci sono, su webmaster no). Non vorrei che come dice Simone abbiate rinunciato……
Per Prima cosa , le sarei grato di non scrivere altri siti di riferimento , Dopodichè la sua affermazione può sembrare di accusa e mi sta catalogando come un ” falso ” che copia da siti altrui i tutorial , quando tranquillamente puo essere successo viceversa ( quindi senza mettere zizzanie in mezzo siete pregati di postare i problemi e basta ) . Controllerà il tutorial nuovamente sperando di trovare i problemi da voi riscontrati e vi auguro Buona giornata , Spero che riuscirò ad esservi di aiuto . Nel momento in cui risolverò il problema , vi informerò tramite commento .
Abbiamo Aggiusto il Tutorial ” Inseire Dati Flash Su Database MySql . Ci scusiamo per l’inconveniente restiamo a vostra disposizione , Se avete problemi non esitate a contattarci . Buona Giornata
Grazie per aver aggiornato il tutorial ma :
1) nella creazione della tabella, utilizzando i comandi MySQL si ottiene il seguene errore ——-
Messaggio di MySQL:
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ”utenti’ (
‘nome’ varchar(50) NOT NULL,
‘cognome’ varchar(50) NOT NULL,
‘indi’ at line 1
Ho creato la tabella manualmente campo per campo come da schema.
2) Il codice PhP manca dell’ apertura “<?” e l’ ho corretto manualmente
3) Ho inserito i codici di flash sia sul primo frame che sul pulsante
Chiaramente ho corretto lo script.php inserendo i dati del mio server/database
Risultato
======
i campi nella maschera vengono azzerati ma non viene inviato/registrato alcun dato.
Hai ragione pe lo script php , comunque posteremo il prima possibile dei file sorgenti in modo che facciamo contenti tutti , per uanto riguarda mysql non ti saprei dire , sono comani che funnzionano con il MySql 5.0 . In flash hai fatto bene , i file devono stare nella stessa cartella , e devono essere testati in remoto per avere un risultato .
Dopo tantissimi tentativi sono riuscito a far arrivare i dati al database ma quello che viene trascritto nei campi sono i nomi delle variabili flash infatti al posto del nome c’è _level0.nome, al posto del cognome _level0.cognome e così via per tutte le variabili solo la data è corretta in quanto non viene passata come variabile ma presa direttamente dal sistema. C’è qualcosa tra l’ action script e lo script PhP che non funziona
Forse hai sbagliato solo a mettere il nome ai campi di input nel flash . Se vedi nelle proprietà c’è ” Nome istanza ” e “variabile ” lo si deve inseire in variabile il nome del campo tipo ” nome , cognome , indirizzo ” se no è ovvio che ti invia level0.nome ecc.. spero di essere stato chiaro .
Ciao ho provveduto a verificare i nomi dei campi, delle istanze e delle variabili e sia con il nome istanza+nome variabile sia con il solo nome variabile nei campi viene inserito <FONT FA a parte nella data il cui valore è corretto.
Come vedi c’è sempre qualcosa che non funziona. Un primo passo è stato quello di raggiungere il DB pian piano forse si riuscirà a fargli scrivere il contenuto corretto.
Il contenuto totale del campo è
“<FONT FA”
nel messaggio precedente è stato tagliato
Purtroppo il messaggio viene modificato all’ atto dell’ invio tolgo le “” e le sostituisco con “-” altrimenti non arriva completo
– “TEXTFORMAT LEADING=”2″- -P ALIGN=”CENTER”–FONT FA
Scusa ancora ma, avevo dimenticato di dirti che all’ avvio del swf nei campi compaiono i nomi e cioè _level0.nomecampo è normale?
Allora Maurizio io ti voglio dare una mano , ma mi devi seguire , mettendo anche al nome istanza un valore è normale succeda ciò . Devi inserire il nome del campo sono nella variabile e vedi che non apparirà leve0.nome . Per il resto non so come esserti di aiuto . Appena posso caricherò dei file di esempio.
Ti ringrazio per la disponibilità e, ho riprovato ancora una volta con le sole variabili senza instanziare nulla ma il risultato è lo stesso e cioè
il contenuto dei campi salvo la data è il seguente:
– âTEXTFORMAT LEADING=â?2â³- -P ALIGN=â?CENTERâ?âFONT FA
i campi all’ avvio sono vuoti.
grazie
mi da errore l’ultimo else del pulsante inviadati!!!!
‘else’ encountered without matching ‘if’
e poi il release non è chiuso!!! cosa devo fare? grazie
Ciao Virpel, dopo tutti questi commenti negativi vorrei darti una buona notizia. Il tuo tutorial è perfetto e mi è stato di grande aiuto. Vorrei darti solo un consiglio: inserisci nel movie di flash un pulsante che cancelli i dati inseriti nel modulo oppure fai in modo che gli stessi spariscano dopo l’inserimento. Quindi grazie, soprattutto perchè dai la possibilità a noi piccoli praticanti di costruire siti di una certa complessità.
Ringrazio le persone come Margherita che seguono bene e leggono soprattutto bene i tutorial affinche questi riescano ad essere eseguiti correttamente .
A tutti coloro che hanno problemi , vi ricordo che il Tutorial è una Guida per imparare l’utilizzo di alcune applicazioni , che senza la pazienza e una minimo di pratica tornano ad essere inutili .
Un consiglio : ” Leggete con attenzione ” .
Ciao Virpel, vorrei realizzare una tabella in flash attraverso la quale modificare i dati di un database mysql, cioè sostiutuendo quelli già esistenti con nuovi dati. É possibile realizzare tutto ciò?
si , con flash puoi realizzare quello che vuoi con l’aiuto di linguaggi server side come php , quindi flash conta ben poco in questi casi , il lavoro lo fanno gli script esterni flash preleva solo le informazioni da questi.
buona giornata.
Infatti è proprio quello che sto facendo: realizzare una tabella in php che prelevi i dati di mysql. Il problema è se si può relizzare in flash una interfaccia utente che modifichi (SOSTIUTUENDOLI) i dati già inseriti nel database. Fino a ora sono solo riuscita a visualizzarli in flash, ma nn sostituirli.
Ciao
Ciao Virpel, nn vorrei sembrarti insistente ma ho visto alcuni siti in flash modifibabili attraverso una interfaccia utente (possibilità di sostituire immagini e testi). Secondo te utilizzano flash collegato ovv.te a php oppure utilizzano direttamente php? Quello che voglio sapere è se un modulo in flash possa visualizzare i dati prelevati dal database, in maniera da poterli poi sostiutire. Grazie per il tuo prezioso aiuto. Ciao
Una domanda, nel codice AS c’è questa riga:
carica.email = _level0.email;
il _level0 a cosa serve?
creando la tabella del db manualmente non vedo come se possa inserire il parametro deafault, è necessario? come posso impostarlo manualmente da mysql?
grazie
Ciao Virpel.
Ho provato il tuo tutorial, ma non mi funziona.
Quando vado a vedere i dati inviati, mi dà come risultato nei campi :
level0.nome , level0.indirizzo … ecc .. e non mi fà vedere il testo che ho immesso, infatti nel database arriva sempre la stessa quantità di dati qualunque cosa io ci scriva…
Puoi aiutarmi ?
Grazie in anticipo.
Ciao.
Ho risolto !!
Ho messo nella riga:
loader.titolo = _root.titolo.text
loader.testo = _root.testo.text
però ho un altro problem,. come posso fare a cancellare i dati vecchi ogni volta che li riaggiorno ?