Je suis en train de créer une application web en utilisant PHP et demander de l'aide pour vérifier un utilisateur. Comme pour certains sites, lors de votre inscription, un e-mail vous est envoyé avec un lien de confirmation. Comment puis-je l'implémenter en PHP? Tout ce que je sais, c'est que je dois utiliser la fonction PHP mail()
pour envoyer l'e-mail. S'il vous plaît aider. Nécessaire. Merci. :)vérifier un utilisateur par e-mail en PHP
Répondre
Tout comme avec la protection CSRF, vous générez un jeton unique.
$token = md5(uniqid(rand(), TRUE));
Vous pouvez stocker cette valeur dans votre session pour que le courrier électronique et lorsque l'utilisateur clique un lien dans l'email (vous passez jeton via le query-string) vous comparez les deux valeurs. Pour plus de sécurité, vous pouvez tout comme avec CSRF ajouter une limite de temps.
C'est une question très large, donc nous ne pouvons donner une réponse générale, mais la technique générale de le faire est
- insérer l'adresse e-mail de l'utilisateur dans votre base de données, mais marquer comme non vérifiée
- créer une clé d'enregistrement unique et l'insérer dans une autre table juste pour ces clés
- envoyer un e-mail à l'adresse e-mail de l'utilisateur avec un lien vers votre site qui passe cette clé d'enregistrement comme argument (par exemple http://site.com/confirm.php?key=1234)
- quand cette URL est vis ité, marquer l'e-mail comme vérifié et supprimer la clé d'enregistrement créée temporairement
Merci Patrick. Cela sert une aide précieuse. Tous les trois (Joe, vous et Alfred) avez tous donné la solution complète à ma question vraiment "large". À votre santé. Rester connecté. :) – ikartik90
Comment savez-vous que c'est cet utilisateur qui a visité l'URL? Ou, est une URL unique fournie à chaque utilisateur? – ggkmath
@ggkmath à cause de l'étape 2, "créer une clé d'enregistrement unique". Si vous utilisez des nombres séquentiels, assurez-vous qu'il est possible à quelqu'un de deviner le suivant dans la séquence, mais si vous faites quelque chose comme une somme md5 d'un nombre aléatoire, personne ne devinera cela. – Patrick
Patricks réponse est correcte même si je tiens à souligner qu'il existe d'autres possibilités!
Vous ne devez pas nécessairement créer et stocker un jeton unique dans votre base de données. C'est un surdébit de données qui n'est nécessaire qu'une seule fois.
Vous pouvez également profiter d'un hachage unidirectionnel.
Par exemple, envoyez à l'utilisateur le code md5('my-secret-application-token'.$user_email_adress)
.
Vous pouvez valider cela de la même manière, mais pas besoin de stocker un code secret.
Si je vole 'my-secret-application-token', alors je peux me connecter comme n'importe quel utilisateur que je voudrais: P. – Alfred
true @Alfred c'est la raison pour laquelle les mots de passe, les keychains, les tokens et tout ça ont été créés! ce serait ennuyeux s'il n'y avait pas là à voler. –
Merci Joe. Que ce problème mienne à une fin. Merci pour l'aide. Rester connecté. À votre santé. :) – ikartik90
- 1. comment vérifier si un utilisateur est connecté en php. utilisant
- 2. Email Tracking en PHP
- 3. Existe-t-il un moyen de vérifier, en PHP, si un email est actif ou pas?
- 4. Email lu en PHP
- 5. Envoyer un email HTML en PHP
- 6. Comment vérifier une adresse e-mail en double en PHP, compte tenu de Gmail ([email protected])
- 7. Lire un email via IMAP en PHP
- 8. envoyez un email en utilisant php
- 9. Email Vérifier JavaScript
- 10. Script pour vérifier où un email est livré
- 11. Créer une table par utilisateur en PHP?
- 12. trouver email et le remplacer par une phrase en PHP
- 13. Comment programmer des notifications par email en php
- 14. Email Sender En PHP/MySQL
- 15. Accéder à un utilisateur email en utilisant toolkit facebook
- 16. Récupérer un email utilisateur en utilisant GTM OAuth2 pour iOS
- 17. filtre php par utilisateur
- 18. Comment vérifier si un email est valide ou non en PHP
- 19. enregistrement php/mysql avec vérification par email
- 20. Comment envoyer _SESSION Vars par email en utilisant PHP
- 21. Vérifier Email Exists dans Django
- 22. Comment récupérer un contact par email avec google api. PHP
- 23. php poster à un email
- 24. html dans un email php
- 25. Composer mais pas envoyer un email en utilisant PHP
- 26. Drupal - connectez un nouvel utilisateur en PHP
- 27. MongoDB PHP email unique
- 28. PHP MySQL - Compter combien d'articles par un utilisateur
- 29. Email Verification PHP
- 30. validation email PHP
pourquoi diable voudrais-tu courir ça par md5. Vous venez de faire une clé unique pas si unique. – Petah
lol Il est assez unique pour ce cas d'utilisation. – Alfred
Merci Alfred. Vous m'avez trouvé la bonne solution pour aller plus loin dans la tâche. À votre santé! :) – ikartik90