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.
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
.
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;
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:
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;
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. 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
.
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;
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.
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.
Extraire les extraits de code importants du fichier confirm.php
pour comprendre comment cela fonctionne.
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;
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.
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!