Oggi vedremo come creare un Login in Flash con autenticazione di account multipli utilizzando PHP + database MySql.

Creare un login in Flash + MySql

Avremo a disposizione una pagina per gestire gli USER, potremo inserirli, visualizzare quelli nel database e cancellarli.

NB: La pagina di gestione è pubblica per darvi la possibilità di provare il tutorial in tutti i suoi aspetti.

Prima di tutto andiamo a creare la tabella users nel database MySql

ecco la query da utilizzare:

CREATE TABLE `users` (
`userid` int(4) NOT NULL auto_increment,
`username` varchar(20) default NULL,
`userpassword` varchar(20) default NULL,
PRIMARY KEY (`userid`)
) ENGINE=MyISAM AUTO_INCREMENT=1 ;

Vediamo ora i file PHP necessari alla realizzazione del Login in Flash

  • connessione.php
  • controlla_login.php
  • gestisci_user.php
  • canc_user.php

In connessione.php troveremo i dati per connetterci al database MySql, questa pagina viene richiamata ogni qualvolta sia necessario connettersi al database, ecco come è strutturato:

<?php
mysql_pconnect("localhost","nome_user","password") or die ("Attenzione non trovo il database");
mysql_select_db("nome_database") or die ("Attenzione non trovo il database");
?>

  • localhost: è il nome del host
  • nome_user: è l’username del nostro account database MySql
  • password: bè è la password del database MySql
  • nome_database: è il nome del database MySql in uso

Se avete problemi a creare una connessione al database MySql leggete questi link utili

In controlla_login.php ci sono degli script che hanno il compito di controllare la fase di login durante l’invio delle variabili da Flash a PHP

In gestisci_users.php invece troveremo un pannello di controllo con il quale sarà possibile inserire, visualizzare o come vedremo dopo cancellare un USER

La pagina canc_users.php come avrete gia intuito, serve a cancellare un USER creato e inserito in precedenza nel database.

Scarica il sorgente
Guarda il Tutorial

Author

Sono un Creative Strategist con più di 10 anni di esperienza in strategie digitali. Il mio ruolo di Stratega consiste nell’ideare e sviluppare concept creativi per progetti multicanale, individuando le attivazioni e dinamiche di Marketing da applicare attraverso un approccio strategico.

107 Commenti

  1. Ma su uno dei link che ci hai dato su come creare un database dice che username , password e il nome del database vengono forniti dall’amministratore del nostro spazio web.
    Quindi li devo chiedere ad aruba?!Mmmm…help!!

  2. Ok,grazie mille! Scusa se le domande sono scontate…ma x me non lo sono!:-)
    Ho fatto un salto su Aruba e se ho capito bene l servizio MySQL costa 7 euro l’anno, pensavo fosse compreso nell’attivazione del sito!

  3. CIAO JULIUS
    MI STO ADDENTRANDO NEL MONDO MYSQL E PHP.
    HO SCARICATO IL TUO LOGIN – VERAMENTE MOLTO BELLO.

    HO PROVATO A INSTALLARLO IN LOCALE CON EASY PHP – HO CREATO UN DATABASE CON PHP MY ADMIN E HO ESEGUITO SENZA PROBLEMI LA QUERY PER CREARE LA TABELLA USERS.

    QUANDO PERO PROVO A REGISTRARE UN UTENTE MI DA UNA SERIE DI ERRORI NEL CODICE “GESTISCI USER.PHP”

    MI SEGNALA LE LINEE DI ERRORE , TRA CUI UN “REQUEST”

    SE TI POSTO LE LINEE DI ERRORE MI POTRESI DARE UN AIUTINO.

    TI RINGRAZIO
    SEI GRANDE

  4. OK GRAZIE JULIUS

    QUESTO E’ QUANTO MI APPARE QUANDO VADOP NELLA SEZIONE GESTISCI USER:

    Notice: Undefined index: newUser in c:\programmi\easyphp1-8\www\login_flash\gestisci_user.php on line 5

    Notice: Undefined index: passOne in c:\programmi\easyphp1-8\www\login_flash\gestisci_user.php on line 6

    Notice: Undefined index: passTwo in c:\programmi\easyphp1-8\www\login_flash\gestisci_user.php on line 7

    Notice: Undefined variable: REQUEST_METHOD in c:\programmi\easyphp1-8\www\login_flash\gestisci_user.php on line 18

    Notice: Undefined variable: result in c:\programmi\easyphp1-8\www\login_flash\gestisci_user.php on line 36

    SCUSAMI MA STO TENTANDO DI CAPIRCI QUALCOSA E SE MI PUOI DARE UNA MANO TE NE SAREI GRATO.

    QUESTO MESSAGIO ME LO DA QUANDO PROVO IN LOCALE IL TUO PROGETTO.

    GRAZIE
    MATTEO

  5. Ciao juliusss, ho dei problemi con la comunicazione tra php e mysql, considerando che è la prima volta che uso mysql (naturalmente per ora in locale) mi trovo difronte a dei “problemi” magari banali….quando accedo a gestisci_user.php (http://localhost/login/gestisci_user.php) mi dà questa stringa di errore____ Fatal error: Cannot re-assign $this in C:\AppServ\www\login\gestisci_user.php on line 22____
    molto probabilmente ho spagliato i settaggi nel file connessione.php e volevo sapere più inormazioni riguardo al campo “host” (cosa devo inserire??? localhost e basta??? e quando andrà on-line?? l’indirizzo del sito??) e il campo del nome DB (ha un percorso particolare?? o basta il solo nome del DB?? devo scrivere un percorso tipo “localhost.nome_db”??). Oltre ai settaggi nel file connessione.php …ci sono altri campi da modificare negli altri file .php??

    grazie mucho
    S

  6. ora mi funziona!!!!

    però ho commentato un blocco nel file gestisci_user.php

    if (($REQUEST_METHOD==’POST’)) {
    //for(reset($HTTP_POST_VARS);
    // $key=key($HTTP_POST_VARS);
    // next($HTTP_POST_VARS)) {
    // $this = addslashes($HTTP_POST_VARS[$key]);
    // $this = strtr($this, “>”, ” “);
    // $this = strtr($this, “<“, ” “);
    // $this = strtr($this, “|”, ” “);
    // $$key = $this;
    // }

    colmeresti la mia ignoranza dicendomi ….cosa ho commentato?? :P

  7. ciao Julius,
    volevo chiederti una cosa.
    Ho inserito il login nel mio sito in flash, e tutto va bene.
    l’unica cosa e che se lascio vuoti username e pasword e clicco su login mi accede al sito. come mai?

    grazie per l’aiuto Gigio

  8. @Shining serve ha codificare alcuni caratteri…

    @Gigio sei sicuro di aver configurato correttamente il database?

  9. Ciao, Julius

    Si il database e’ a posto.
    il problema e che mi entra in loop quando mi loggo,
    ti linKo il sito

    http://www.cod4.helloweb.eu/

    se accedi con username:gigi e pawsprd:pippo

    ti esce il messaggio di conferma,. Se clicchi sul pallino bianco (provvisorio) dovrebbe saltare al sito ma entra in loop. In pratica ho fatto un bottone con
    azione:
    (no (release) {
    _root.gotoAndPlay(6) // 6 e’ il frame dove inizia il sito sulla timaline.

    Mi potresti dire dove sbaglio? Ti ringrazio molto

  10. ciao, Julius,
    volevo chiederti una cosetta.
    ho fatto una pagina del login, e se l’utente e la pasw sono giusti vieni indirizzato nella pagina del sito (in un’altro url.) Come faccio a evitare che un utente che ha avuto accesso copi l’indirizzo del sito e possa saltare l’autenticazione le volte successive che si collega (cioe’ che copi e incolli l’indirizzo del sito e acceda senza login )? Vorrei che flash riconosca che l’utente non ha eseguito il login e quindi sia reindirizzato all’url dove ce la pagina del login, e vice versa che flash riconosca che il login e stato fatto e che quindi puo’ avere accesso al sito.
    Come posso fare?

    Ti ringrazio moltissimo.

    Gigio

  11. Lamberto

    Ciao, ho provato questo tutorial ma il mio sito è in Action Script 3 e non mi accetta il “var” nei campi in flash “userinput” e “passinput” … qualche consiglio?

    Grazie e Complimenti

    Lamberto

  12. ciao Julius…volevo sapere se questa applicazione era possibile da usare per fare entrare i miei visitatori, inserendo utente e pass, per esempio in myspace…come se entrassero proprio dall home page del sito…..aspetto tue risp grazie ancora x l’altro intervento

  13. Ciao Julius…..complimenti bello script e da un po’ che cercavo una cosa del genere però volevo chiederti se io voglio poi realizzare tutto il sito in php come faccio nn avendo flash ha indiizzare la pagina dell login quando e stato effettusto a un altra pagina che nel mio caso sarà la ma home page…….ah un altra cosa come faccio a criptare tutte le altre pagine che voglio creare quale file devo includere cosa devo fare???
    Grazie in anticipo….

  14. Ciao Julius
    Ho inserito con loadmovie l’swf in un sito tutto in flash per riservare l’accesso a sezioni del file ma quando clicco sul login mi dice sempre “accesso al database attendere prego” . Se usato da solo funziona.
    Il problema da quello che riesco a capire dovrebbe essere in questa riga o sbaglio?
    loadVariablesNum(“controlla_login.php”, 0, “POST”);
    Grazie anticipate

  15. Ciao Julius,
    io ho un sito su Aruba.
    Da quando c’è stato il passaggio del PHP su Aruba non funziona più correttamente il login.
    Non mi trova la pagina di gestisci_user, non si connette al database..

    A sempre funzionato tutto correttamente. ora non +.

    Mi sai aiutare o consigliare un metodo per far sì che riprenda a funzionava tutto correttamente?

    Grazie mille.

    Andrea

  16. Ciao Julius,
    Ho trovato molto utile questo tutorial, tra l’altro funziona benissimo. e tu sei un grande.. ho provato su un server altervista.. tutto ok. successivamente ho provato su un dominio aruba. (con i relativi servizi di gestione db mysql attivi), ho impostato la tabella, il file connessione.php. ho messo online ma……
    …..SORPRESA… NON FUNZIONA!

    accedo a config_user.php e mi da il seguente errore.

    Fatal error: Cannot re-assign $this in D:\Inetpub\webs\nomedelmiositosenzapunti\gestisci_user.php on line 22

    -.-” porca vacca

    Ma che significa? Mi puoi aiutare?

    (ho ricontrollato un sacco di volte, i dati di connessione.php. e sono certo che sono giusti)

    ciao julius e grazie per queste dritte.

  17. TUTTO OK.
    il problema sta in config_user.php

    PHP5 con riconsce il campo $this. (MI PARE DI AVER CAPITO).

    consiglio di impostare le righe manualmente dal pannello di controllo.

    con nome utente e password.

    grazie lo stesso

  18. Ciao, è possibile aggiornare questo utile tutorial rendendolo compatibile con php 5 ?

  19. @Hecto: in teoria dovrebbe funzionare anche per PHP 5… cmq la parte da aggiornare è semplicemente il PHP e non Actioscript…

  20. Già.. e come si aggiorna lo script PHP? Ho provato a commentare o a cancellare parte del codice con $this, ma quando provo a d aggiungere un nuovo user la pagina non si aggiorna, continuo a vedere 0 come numero di utenti e infatti controllando il db noto che i campi sono vuoti…

  21. @Aranuir… se ancora ti serve…
    in gestisci_user.php
    cambia questa riga di codice

    if (($REQUEST_METHOD=='POST')) {

    con questa

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    Ciao.

  22. Domenico

    Ciao Julius…ma sai che sei davvero bravissimo??
    Cmq scusa ho bisogno di un’informazione…io ho impostato tutto per il MySql e ho caricato tutto sul web. Quando vado a effettuare il login mi dice “grazie di aver effettuato il login”…ma poi come devo fare ad andare al sito che dovrebbe essere protetto???!

    Aspetto una tua risposta al più presto….ciaoooo a tutti

  23. In pratica il “sito protetto” viene gestito dall’applicazione flash che nel mio esempio ti rimanda a un frame

    Invece del rimando la frae nella condizione puoi indicare una pagina web o un’altro accesso

  24. Domenico

    Ok, grazie Julius sei stato molto chiaro, ma se per caso la persona salva il link del sito poi puo accedergli ogni volta che lo vuole senza effettuare nuovamente il login…o sbaglio?? quindi cosa dovrei fare??

  25. Danlonik

    ciao julius, solo una domanda…ma se voglio inserire questo login nel mio sito costruito in ac3 con adobe flash cs3 come devo fare?? GRAZIE MILLE

    potrei caricare il file esterno SWF?…oppure in questo modo non funzionerebbe?

  26. Danlonik

    Scusa mi sno dimenticato un altra cosa..ma posso provarlo insieme a XAMMP?
    CIAO

  27. GESTIRE gestisci_user.php CON PHP 5
    Non potendo riassegnare un valore alla variabile $this ho risolto in questo modo e funziona:

    $thisa = addslashes($HTTP_POST_VARS[$key]);
    $thisb = strtr($thisa, “>”, ” “);
    $thisc = strtr($thisb, “<“, ” “);
    $thisd = strtr($thisc, “|”, ” “);
    $$key = $thisd;

  28. Ciao a tutti ragazzi, sono un po’ in panico!!!
    Mi hanno chiesto di inserire su questo sito internet, come sezione finale dei download un log in…. ho chiesto a un po’ di gente, ma chi poteva darmi una mano è momentaneamente impegnata…
    Dunque, premetto che ho sempre e solo usato photoshop, e flash lo sto usando solo da maggio 2008…. ho imparato parecchie cose, ma quello che ancora non sò è fare proprio il log in….che cos’è questo MYSQL? e PHP? non sò darmi una risposta…e non le trovo ingiro…Che cosa devo scaricare per gestire account?

    In pratica il capo dell’azienda mi ha chiesto di inserire il log in nei download prima di accedere alla pagina effettiva…..
    Come mi devo comportare? sono alle prime armi in questo senso….Aiutatemi please!
    Grazie mille a chi risponderà!
    Andrea

  29. Ciao Julius,
    mi è interessato molto il tuo tutorial ed era proprio quello che cercavo… Ma c’è un’errore nella pagina Connessione.php perchè io inserisco correttamente host, nome, password e nome database. Io ho scritto questo:

    Poi siccome non funzionava ho provato questo:

    [Naturalmente nella password non ho messo ********]

    Ti ringrazio in anticipo
    Koskha

  30. ciao Julius!
    Ottimo questo file ma mi da un problema su gestisci user, esattamente questo:

    Fatal error: Cannot re-assign $this in /web/htdocs/www…./gestisci_user.php on line 22

    da cosa è dovuto?

  31. ciao mi funziona benissimo se carico swf da solo

    ma se lo carico come livello cioe’ in load movie livello 8

    non va piu

    rimane in loop la scritta verifico nel database…

    cosa devo fare?

    ciao e grazie mille

  32. e poi altra cosa ancora…

    ho usato un tuo tutorial per mettere in fullscreen il tutto

    ma quando carico swf del login in fullscreen
    non mi va piu’ la digitazione del testo

    come mai?

    ciao jlius fammi sapere
    simone

  33. Ancora complimenti per il Tutorial! Però ho il solito problema del Fatal error: Cannot re-assign $this in(ecc ecc …….) on line 22, ho seguito la discussione e ho apportato un po di modifiche al file gestisci_user.php ; ora il codice inserito è questo:
    if (($REQUEST_METHOD==’POST’)) {
    for(reset($HTTP_POST_VARS);
    $key=key($HTTP_POST_VARS);
    next($HTTP_POST_VARS)) {
    $_this = addslashes($HTTP_POST_VARS[$key]);
    $_this = strtr($_this, “>”, ” “);
    $_this = strtr($_this, “<", " ");
    $_this = strtr($_this, "|", " ");
    $$key = $_this;
    }

    l'errore non lo da più ma se registro un utente mi dice che è già esistente…. vi linco la pagina:
    http://www.jhonflushenigma.com/ut/gestisci_user.php

    (un altra cosa i permessi io li ho impostati tutti a 0777 vanno bene così?)
    grazie mille!

  34. ho risolto! :D non avevo capito che avrei dovuto cambiare sia la parte dell’ aggiornamento al php5 e le variavili $this con $_this

    codice nuovo————

    if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’) {
    for(reset($HTTP_POST_VARS);
    $key=key($HTTP_POST_VARS);
    next($HTTP_POST_VARS)) {
    $_this = addslashes($HTTP_POST_VARS[$key]);
    $_this = strtr($_this, “>”, ” “);
    $_this = strtr($_this, “<", " ");
    $_this = strtr($_this, "|", " ");
    $$key = $_this;
    }

    Ciao julius! grazie mille!

Commenti