Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125

    PHP, controllo e-mail duplicata

    Buonasera a tutti.
    Sto lavorando con PHP e MySql (tramite l'interfaccia di PhpMyAdmin).
    Ho creato un form di registrazione e nello script che gestisce le variabili e va a scrivere nel DB, ho creato un controllo per evitare che gli indirizzi e-mail siano duplicati. Cosicchè se un utente si registra, mettendo un e-mail che già esiste nel DB, viene mandato un messaggio di errore ed un invito a riprendere la registrazione (il tutto mantenendo la grafica del mio sito); fin qui tutto ok.
    Inoltre l'utente ha anche la possibilità di effettuare l'update dei suoi dati... e qui nasce il problema.
    Supponiamo che una persona si registri con un indirizzo e-mail e che poi effettui un'altra registrazione con un altro indirizzo. Successivamente decide di modificare i dati della seconda registrazione ed in fase di update mette l'e-mail della prima registrazione.
    L'unico modo che mi viene in mente per evitare che l'indirizzo si duplichi, è stabilire nell'SQL che il campo dell'e-mail possa contenere solo valori univoci.
    Così però, in caso di duplicati, il messaggio d'errore verrà mandato fuori dalla grafica del mio sito, in inglese e l'utente potrebbe non capire.
    C'è dunque la possibilità di ovviare in qualche modo?
    Mille grazie.

  2. #2
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Ciao,

    se partiamo dal fatto che in database non possono esserci due mail uguali,

    prima di fare update/insert

    potresti cercare il campo email che si sta cercando di aggiornare/inserire in database, e se esiste già, non fai update/insert e dai un errore a schermo, senza usare l'errore di mysql in merito a valori univoci...


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125
    E' una soluzione alla quale avevo pensato, ma non la posso attuare perchè devo dare all'utente la possibilità di cambiare i suoi dati e solo eventualmente lo volesse anche l'e-mail.
    Se io controllo anche anche in fase di modifica dati che non ci siano duplicati e la persona cambia tutto e lascia l'e-mail che c'era, avrò un errore che non deve esserci.

  4. #4
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Hai ragione!

    Supponiamo che la tua tabella sia così e che paolo voglia cambiare la mail:

    id nome email
    1 paolo mail1@gmail.com
    2 silvia mail2@gmail.com
    3 marco mail3@gmail.com

    codice:
    select distinct(1) RES from tabella
    where id!='1' and mail='mail1@gmail.com'
    Se lascia mail1@gmail.com o una mail non esistente, l'esito della query varrà null.
    Se usa una mail adoperata da altri, l'esito della query varrà 1.

    Guarda se questo ti puo' essere d'aiuto.


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    125
    Grande caro!!!
    Tutto ok, adesso funziona tutto come siu deve.
    Mille grazie.

  6. #6
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    Di niente!!


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.