Maison >développement back-end >tutoriel php >Comment coder un formulaire d'inscription avec confirmation par e-mail

Comment coder un formulaire d'inscription avec confirmation par e-mail

Jennifer Aniston
Jennifer Anistonoriginal
2025-02-27 09:36:15278parcourir

How to Code a Signup Form With Email Confirmation

Ce tutoriel vous guidera pour créer un formulaire d'enregistrement de l'utilisateur qui ajoute l'utilisateur à la base de données, puis envoie un e-mail de confirmation sur lequel l'utilisateur doit cliquer pour activer son compte.

Créer une forme d'enregistrement à partir de zéro

Cette section expliquera étape par étape dans la construction d'un formulaire d'inscription personnalisé à partir de zéro. Tout d'abord, j'ai joint tous les fichiers de code à télécharger afin que vous puissiez suivre le tutoriel.

Examinons rapidement les fichiers importants:

  • index.php: Il s'agit du fichier principal utilisé pour construire et afficher le formulaire d'enregistrement. Il traite également la soumission des formulaires.
  • confirm.php: Utilisé pour traiter la partie de confirmation.
  • signup_template.html: Il s'agit d'un modèle de fichier HTML utilisé pour créer le corps de messagerie HTML.
  • signup_template.txt: Il s'agit d'un modèle de fichier texte brut utilisé pour créer un corps de messagerie en texte brut.
  • inc/php/config.php: Contient des informations de connexion de base de données.

Les autres fichiers sont des fichiers auxiliaires.

Ouvrez phpmyadmin ou tout programme que vous utilisez pour gérer la base de données MySQL et créer une nouvelle base de données. Vous pouvez le nommer comme vous le souhaitez, mais je vais le nommer email_signup. Nous devons maintenant créer un schéma qui sauvera nos informations d'utilisateur et nos informations de confirmation. Pour ce faire, nous créerons deux tables: users et confirm.

<code class="language-sql">CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(50) NOT NULL default '',
  `password` varchar(128) NOT NULL default '',
  `email` varchar(250) NOT NULL default '',
  `active` binary(1) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

L'instruction MySQL ci-dessus créera un tableau nommé users.

  • id: Une séquence entière qui est utilisée comme identifiant unique pour l'utilisateur. Il est défini comme int(11), ce qui signifie qu'il peut contenir jusqu'à 11 entiers de bits.
  • username: une colonne de chaîne qui stocke le nom d'utilisateur de chaque utilisateur. Il est défini comme varchar(50), ce qui signifie qu'il peut économiser jusqu'à 50 caractères.
  • password: une colonne de chaîne qui stocke le mot de passe de hachage pour chaque utilisateur. Il est défini comme varchar(128), ce qui signifie qu'il peut contenir jusqu'à 128 caractères.
  • email: une colonne de chaîne qui stocke l'adresse e-mail de chaque utilisateur. Il est défini comme varchar(250), ce qui signifie qu'il peut économiser jusqu'à 250 caractères.
  • active: une colonne binaire qui stocke si le compte de l'utilisateur a été activé. Il est défini comme binary(1), ce qui signifie qu'il stocke une valeur d'octet, 0 signifie inactif et 1 signifie activé.

confirm Tableau:

<code class="language-sql">CREATE TABLE `confirm` (
  `id` int(11) NOT NULL auto_increment,
  `userid` varchar(128) NOT NULL default '',
  `key` varchar(128) NOT NULL default '',
  `email` varchar(250) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

L'instruction MySQL ci-dessus créera un tableau nommé confirm.

  • id: Une séquence entière qui est utilisée comme identifiant unique pour confirmer l'enregistrement. Il est défini comme int(11), ce qui signifie qu'il peut contenir jusqu'à 11 entiers de bits.
  • userid: une colonne de chaîne qui stocke l'ID utilisateur associé à l'enregistrement de confirmation. Il est défini comme varchar(128), ce qui signifie qu'il peut contenir jusqu'à 128 caractères.
  • key: une colonne de chaîne qui stocke la clé de confirmation envoyée à l'adresse e-mail de l'utilisateur. Il est défini comme varchar(128), ce qui signifie qu'il peut contenir jusqu'à 128 caractères.

Connectez-vous à la base de données MySQL à l'aide de mysqli

Cette section expliquera comment utiliser l'extension MySQLI pour se connecter à une base de données MySQL.

Laissez-nous rapidement extraire et comprendre le code du fichier inc/php/config.php.

<code class="language-sql">CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(50) NOT NULL default '',
  `password` varchar(128) NOT NULL default '',
  `email` varchar(250) NOT NULL default '',
  `active` binary(1) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

Tout d'abord, nous créons une nouvelle connexion mysqli. Ensuite, nous vérifions si la connexion réussit. Si la connexion échoue, un message d'erreur s'affiche et sort.

Traitement de soumission de formulaire

Cette section expliquera comment fonctionne la soumission de formulaire.

... (certains codes sont omis ici, car cette partie du code dans le texte d'origine est longue et incompatible avec l'objectif pseudo-original, alors gardez la logique de base) ...

La logique principale est: traiter en toute sécurité l'entrée de l'utilisateur (par exemple, utiliser mysqli_real_escape_string la fonction pour empêcher l'injection SQL), vérifiez que l'entrée de l'utilisateur est terminée, insérez les données de l'utilisateur dans la base de données, générez une clé de confirmation et envoyez un e-mail de confirmation. Les mots de passe sont hachés à l'aide de la fonction MD5, et il est recommandé d'utiliser une méthode de cryptage plus sécurisée.

Afficher la confirmation du formulaire

Extraire les extraits de code importants du fichier confirm.php pour comprendre comment cela fonctionne.

<code class="language-sql">CREATE TABLE `confirm` (
  `id` int(11) NOT NULL auto_increment,
  `userid` varchar(128) NOT NULL default '',
  `key` varchar(128) NOT NULL default '',
  `email` varchar(250) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

Ce code vérifie principalement s'il existe une boîte aux lettres et une clé de confirmation dans la base de données qui correspond aux paramètres URL. S'il est présent, mettez à jour l'état de l'utilisateur pour activer et supprimer l'enregistrement de confirmation.

Conclusion

Ce tutoriel se termine ici.

Dans ce tutoriel, nous couvrons de nombreux aspects différents. Nous avons téléchargé et inclus des scripts tiers pour le traitement des e-mails, mis en œuvre une validation de formulaire simple et créé un système de modèle simple pour styliser les e-mails. Si vous n'êtes pas familier avec MySQL, nous avons couvert trois des fonctions les plus courantes, vous devriez donc pouvoir compléter facilement des tutoriels plus avancés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn