IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Système de vérification d'inscription par e-mail


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 80
    Points
    80
    Par défaut [Mail] Système de vérification d'inscription par e-mail
    Bonjour,

    Je souhaiterais mettre en place sur mon site un système d'inscription (comme sur des forums par exemple) avec une vérification par email.
    Par contre, je ne sais pas du tout comment cela fonctionne. Quelqu'un pourrait-il m'expliquer le principe ? A quoi correspond le lien hypertexte que de tels systèmes transmettent ?
    Merci d'avance pour vos réponses.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Tout simplement, mais il y a, comme toujours, plusieurs possibilités

    Celle que je te propose :
    Il faut au préalable une colonne validation.
    Lorsque j'envoie le mail, je Crypte le mot de passe en md5(); puis je récupère ce mot de passe crypté et je l'ajoute dans un lien du style : confirmation.php?c=$passcrypt

    Ensuite quand la personne va recevoir son mail elle ne pourra pas se connecter (ceci est du à la colone validation qui aura la valeur 0), il va donc lui falloir cliquer sur ce beau lien.
    Le fait de cliquer sur ce lien lance une requête qui cherche le mot de passe (qui est aussi crypté dans la BDD) qui est identique à celui de la variable $GET['c'], puis je fais un UPDATE en remplaçant la valeur 0 par 1.

    Bien sur il faut prendre en compte cette valeur dans le script d'identification.

  3. #3
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Je conseil de concaténé l'unixtime ou autre avant le passage à MD5 car si plusieur personnes on le même mot de pass forcement là tes cassé
    Ou bien de rajouter le login dans le lien de validation et de faire ta verification SQL sur les deux champs

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Citation Envoyé par |PaRa-BoL
    Je conseil de concaténé l'unixtime ou autre avant le passage à MD5 car si plusieur personnes on le même mot de pass forcement là tes cassé
    Ou bien de rajouter le login dans le lien de validation et de faire ta verification SQL sur les deus champs
    En effet, ou au pire, tu rajoutes une valeur date dans ton lien :') (faut le faire le zigoto qui s'inscrit à la même seconde avec le même mot de passe xD)

  5. #5
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Ho j'ai vu des truc très bizard sur internet xD il faut toujours envisager toute les possibilités

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 80
    Points
    80
    Par défaut
    Merci pour la réponse aussi rapide. Je vais pouvoir tester tout ça. Y a-t-il d'autres astuces comme l'heure ?

  7. #7
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Le plus simple je pense c'est que dans l'url de verification il y'est :

    l'id unique et une chaine MD5 stocké dans la table en rapport avec l'user.
    Pour générer cette chaine tu peux convertire en MD5 le pass de l'user + chaine aléatoire ou alors concaténé pseudo + time(). Tu fait ce que tu veux en faite xD
    Le principal étant que la personne ne puisse pas deviner ou bruteforcer pour trouver la clef. Donc en gros je dirais pour la concaténation :

    iduser + pseudo + microtime()

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par |PaRa-BoL
    ...Donc en gros je dirais pour la concaténation :

    iduser + pseudo + microtime()
    Ce qui correspond à un champ supplémentaire dans la table des utilisateurs.
    J'ai bien compris ?

  9. #9
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    oui il te faut un champ dans lequel tu définis si l'utilisateur a activé son email ou non (0 ou 1)...
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  10. #10
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Plus le champ contenant la clef d'activation, ou plus simplement un seul champ contenant la clef et si elle est valider tu le passes à NULL.
    Mais pour des utilisations futur il vaux mieux mettre 2 champs :

    BOOL : validé[oui/non]
    varchar : la clef

  11. #11
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Tu n'as pas forcément besoin d'un champ qui contient la clé si tu arrive à déchiffrer la clé... Par exemple si tu met le mot de passe en md5 + l'id de l'utilisateur tu peux reprendre ces deux valeur et les comparer. Les 32 premier c'est le mot de pas et la suite c'est l'id
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 102
    Points : 80
    Points
    80
    Par défaut
    OK C'est bon. Merci à tous.
    Je devrais m'en sortir.

  13. #13
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Citation Envoyé par Yoteco
    Tu n'as pas forcément besoin d'un champ qui contient la clé si tu arrive à déchiffrer la clé... Par exemple si tu met le mot de passe en md5 + l'id de l'utilisateur tu peux reprendre ces deux valeur et les comparer. Les 32 premier c'est le mot de pas et la suite c'est l'id
    Oui mais si quelqu'un de mal intentionné trouve comment encoder la clef il peut valider un compte sans avoir reçu le mail

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Citation Envoyé par |PaRa-BoL
    Oui mais si quelqu'un de mal intentionné trouve comment encoder la clef il peut valider un compte sans avoir reçu le mail
    Bouh, j'ai validé un compte, je vais terrorisé !!!

  15. #15
    Membre éclairé Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Points : 876
    Points
    876
    Par défaut
    Bah si ya besoin de validation c'est qu'il ya une raison Spam, etc..

Discussions similaires

  1. [MySQL] confirmation inscription par mail
    Par sitadom39 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/04/2013, 18h36
  2. Validation inscription par e-mail
    Par rif15 dans le forum Langage
    Réponses: 4
    Dernier message: 11/11/2008, 22h56
  3. [phpBB] Validation par e-mail de l'inscription du membre
    Par jlb59 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 29/11/2007, 11h05
  4. [Mail] confirmer une inscription par mail
    Par przvl dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2007, 15h02
  5. Réponses: 135
    Dernier message: 15/12/2006, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo