Visualizzazione risultati 1 fino 9 di 9

Discussione: Guida login e registrazione utenti in PHP e MySQL

  1. #1
    L'avatar di soulcanada
    soulcanada non è connesso Utente giovane
    Data registrazione
    12-08-2011
    Messaggi
    75

    Arrow Guida login e registrazione utenti in PHP e MySQL

    Ciao ragazzi,
    è ormai da tempo che vedo richieste di giovani utenti su come sia possibile inserire un sistema di login e registrazione utenti nel proprio sito.

    Molti utenti hanno più volte risposto consigliando guide o preparando script da utilizzare direttamente nei siti mentre io vorrei proporre una guida che spieghi in modo semplice il funzionamento di un sistema di login e registrazione utenti realizzato attraverso l'utilizzo di PHP e MySQL.

    Ho preparato un pacchetto di esempio contenente uno script di login e registrazione utenti e la guida ne spiega il funzionamento illustrandone le principali caratteristiche e spiegando le operazioni basilari che tale sistema dovrà eseguire.

    La guida e il pacchetto di esempio li potete trovare cliccando su questo link.

    Per completezza riporto alcuni degli argomenti trattati nella guida:

    • Preparare il database
    • Funzionamento e struttura delle pagine
    • La pagina di login
    • La pagina di registrazione utenti
    • La pagina di attivazione account
    • La pagina di profilo utente
    • La pagina di logout
    • La pagina di recupero password


    Spero che questo mio lavoro possa aiutare i nuovi utenti a risolvere i loro dubbi riguardo il funzionamento di un sistema di login e registrazione utenti; nel caso doveste trovare problemi durante la consultazione della guida postate qui sotto.

    Ciao ciao...

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Il sistema è un po' contorto, con un gran numero di file che non sarebbero necessari. E mi è sembrato assai aperto a sql injection e simili problemi.

    Suggerisco come minimo di usare mysql_real_escape_string, o meglio di riscriverlo usando mysqli oppure PDO.

  3. #3
    L'avatar di soulcanada
    soulcanada non è connesso Utente giovane
    Data registrazione
    12-08-2011
    Messaggi
    75

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Il sistema è un po' contorto, con un gran numero di file che non sarebbero necessari.
    Sicuramente il pacchetto presenta molti file ma è voluto in quanto ho cercato di suddividere il codice il più possibile in modo che fosse facilmente comprensibile e non tutto concentrato in pochi file.

    Ho utilizzato tale suddivisione in quanto la guida serve a comprendere il funzionamento base di uno script di login e registrazione utenti e non pretende di essere uno script pronto all'uso.

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    E mi è sembrato assai aperto a sql injection e simili problemi.
    Strano in quanto tutti i dati in entrata vengono validati da apposite funzioni mentre le query non sono hardcoded ma utilizzano la funzione sprintf di php con il cast dei dati nel tipo richiesto.

    Se per caso hai notato un punto critico ti prego di segnalarmelo in modo che lo possa correggere.

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Suggerisco come minimo di usare mysql_real_escape_string
    Già la utilizzo...

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    o meglio di riscriverlo usando mysqli oppure PDO.
    Ho scelto di non usare PDO o mysqli solamente perchè nelle richieste degli utenti il codice non le utilizza ma potrebbe effettivamente essere una buona cosa questo tuo suggerimento.

    Grazie per le critiche...

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    Ah, ho riletto meglio ed in effetti ho trovato i pezzi che eseguono la validazione, non tanto i printf (che nonti danno molta sicurezza), quanto i controlli sui valori in entrata.

    Solo, sono sparsi un po' qua e la: le tue funzioni che lavorano sul database assumono che i dati in arrivo siano corretti, ed i controlli sono eseguiti ad un livello superiore. Occhio che questo approccio va bene solo se le funzioni vengono richiamate in un singolo punto del codice, altrimenti ti ritrovi a ripetere i controlli in diversi file.
    Ultima modifica di dreadnaut : 10-09-2012 alle ore 13.20.03

  5. #5
    L'avatar di soulcanada
    soulcanada non è connesso Utente giovane
    Data registrazione
    12-08-2011
    Messaggi
    75

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Occhio che questo approccio va bene solo se le funzioni vengono richiamate in un singolo punto del codice, altrimenti ti ritrovi a ripetere i controlli in diversi file.
    Scusa ma non capisco cosa intendi...

  6. #6
    Guest

    Predefinito

    ragazzi quando cerco di aggiungere un form in più nella pagina per registrarsi mi da questo errore "Si è verificato un errore durante la registrazione" oppure se tutto va bene non mi salva nel database il nome username www.itworldlive.it/prova/Immagine.png come è possibile?

  7. #7
    Guest

    Predefinito

    Grazie mille è proprio quello che volevo non mi sono mai piaciuti gli script 'sottovuoto' ma sono una frana in php spero che questa guida mi aiuti thanks ;)

  8. #8
    L'avatar di soulcanada
    soulcanada non è connesso Utente giovane
    Data registrazione
    12-08-2011
    Messaggi
    75

    Predefinito

    Citazione Originalmente inviato da AmOrEaMiCiZa Visualizza messaggio
    ragazzi quando cerco di aggiungere un form in più nella pagina per registrarsi mi da questo errore "Si è verificato un errore durante la registrazione" oppure se tutto va bene non mi salva nel database il nome username www.itworldlive.it/prova/Immagine.png come è possibile?
    Ciao,
    l'immagine che hai allegato non si vede inoltre, quando hai aggiunto il nuovo campo in fase di registrazione, hai aggiornato anche la funzione registerNewUser presente nel file inc/user.php? Hai aggiunto anche la colonna nella tabella del database?

  9. #9
    L'avatar di soulcanada
    soulcanada non è connesso Utente giovane
    Data registrazione
    12-08-2011
    Messaggi
    75

    Predefinito

    Citazione Originalmente inviato da HelperNotes Visualizza messaggio
    Grazie mille è proprio quello che volevo non mi sono mai piaciuti gli script 'sottovuoto' ma sono una frana in php spero che questa guida mi aiuti thanks ;)
    Ciao e grazie del commento ma posso sapere cosa intendi quando dici script "sottovuoto"?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •