Implémenter la fonction d'enregistrement des utilisateurs
Nous réaliserons la page d'inscription la plus simple. Il y a trois paramètres dans la page d'inscription :
1. Nom d'utilisateur
2. Mot de passe
3. Répétez le mot de passe
Après que l'utilisateur ait écrit les trois. paramètres, lorsque vous cliquez sur Soumettre, l'enregistrement POST est transmis à la page connect.php.
Nous pouvons traiter l'enregistrement POST et l'écrire dans la base de données MySQL, ce qui complète l'enregistrement de l'utilisateur.
Le code est le suivant :
<form action="connect.php" method="post"> 用户名:<input type="text" name="username"><br /> 密码:<input type="password" name="password"><br /> 重复密码:<input type="password" name="repassword"><br /> <input type="submit" value="提交"> </form>
Afin d'obtenir des performances plus rapides, notre interface de code n'a pas été embellie. Nous vous guiderons dans l’enregistrement des utilisateurs le plus rapidement possible.
1. Déterminer les mots de passe répétés
En raison de mots de passe répétés, si les mots de passe saisis deux fois par l'utilisateur sont incohérents, cela signifie que l'utilisateur n'est pas passé à l'étape suivante.
Des mots de passe répétés sont encore utilisés à de nombreux endroits de la page Web. Car la crainte est que les utilisateurs fassent des erreurs. Le mot de passe n'a pas été saisi correctement.
Les utilisateurs peuvent saisir deux espaces supplémentaires sur les côtés gauche et droit lors de la saisie de leur mot de passe. Par conséquent, nous utiliserons trim pour supprimer les espaces des deux côtés des mots de passe et des mots de passe répétés.
if(trim($_POST['password']) != trim($_POST['repassword'])){ exit('两次密码不一致,请返回上一页'); }
2. Préparez les données à écrire
Nous devons écrire à la fois les données saisies par l'utilisateur et les données cachées dans la base de données.
Les données visibles incluent :
1 Nous devons supprimer les espaces des deux côtés du nom d'utilisateur pour éviter une saisie inutile de. ces informations.
2. Dans le chapitre MySQL, nous avons mentionné que le mot de passe de l'utilisateur ne doit être visible par personne, y compris les internes de l'entreprise. Assurez-vous que le mot de passe est irréversible. Au stade initial, apprenez simplement MD5. Nous vous apprendrons d’autres méthodes de cryptage à l’avenir.
Les données invisibles incluent :
1 L'horodatage Unix renvoyé par time
2. l'adresse IP, nous pouvons utiliser ip2long pour la convertir en stockage entier.
$username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = ip2long($_SERVER['REMOTE_ADDR']);
3. Connexion à la base de données, jugement des erreurs, sélection des bibliothèques et des jeux de caractères
1. Nous utilisons mysqli_connect pour nous connecter à la base de données. serveur.
2. S'il y a une erreur, utilisez mysqli_errno pour obtenir le numéro d'erreur
3 S'il y a une erreur, mysqli_error affiche toutes les erreurs et quitte l'exécution du programme
<🎜. >4. Sélectionnez la base de données et définissez le jeu de caractères sur utf8.//Connectez-vous à la base de données$conn = mysqli_connect('localhost','root','123456789');//S'il y a une erreur, il y a un numéro d'erreur
if(mysqli_errno($conn)){ echo mysqli_error($conn); exit; } mysqli_select_db($conn,'book'); mysqli_set_charset($conn,'utf8');
4. Instruction SQL combinée
Nous devons écrire les informations obtenues dans la base de données. Nous avons le nom d'utilisateur, le mot de passe, l'heure de création et. IP. Insérez simplement les variables correspondantes dans l'instruction SQL. L'instruction SQL combinée est la suivante :$sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')";
Et notre instruction pour créer le tableau est la suivante :
CREATE TABLE IF NOT EXISTS user ( id int(11) NOT NULL, username varchar(30) NOT NULL, password char(32) NOT NULL, createtime int(11) NOT NULL, createip int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Format du tableau (champ description correspondant) :
5. Envoyez une déclaration et déterminez le statut
mysqli_query Comme nous l'avons dit plus haut, deux paramètres doivent être transmis :
1. La ressource connectée, la variable correspondante ici est $conn.
2. L'instruction SQL envoyée. $sql est déjà préparé ci-dessus.
Les instructions SQL peuvent être envoyées au serveur MySQL via mysqli_query. $result est vrai s'il est envoyé avec succès. Sinon faux.
En cas de succès, nous pouvons informer l'utilisateur que l'inscription a réussi.
Dans certains cas, il peut être nécessaire d'utiliser mysqli_insert_id(). Imprimez ici l’ID de la clé primaire auto-incrémentée.
N'oubliez pas ce point de connaissance pour éviter de l'oublier en cas de besoin à l'avenir.
Scénario d'application mysqli_insert_id : une ligne de données nouvellement ajoutée. Nous devons obtenir la valeur d'ID en croissance automatique lors de l'insertion de cette valeur d'ID dans une autre table. Vous devez utiliser cette fonction.
$result = mysqli_query($conn,$sql); if($result){ echo '注册成功'; }else{ echo '注册失败'; } echo '当前用户插入的ID为'.mysqli_insert_id($conn);
5. Fermez la connexion à la base de données
Passez la variable de ressource à la fonction mysqli_close.
mysqli_close($conn);
Le code d'implémentation de base pour l'enregistrement des utilisateurs a été écrit. Ce dont nous avons parlé ci-dessus, ce sont des extraits de code.
Le code connect.php que nous avons implémenté est le suivant :
<?php if (trim($_POST['password']) != trim($_POST['repassword'])) { exit('两次密码不一致,请返回上一页'); } $username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = $_SERVER['REMOTE_ADDR']; $conn = mysqli_connect('localhost', 'root', '123456789'); //如果有错误,存在错误号 if (mysqli_errno($conn)) { echo mysqli_error($conn); exit; } mysqli_select_db($conn, 'book'); mysqli_set_charset($conn, 'utf8'); $sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')"; $result = mysqli_query($conn, $sql); if ($result) { echo '成功'; } else { echo '失败'; } echo '当前用户插入的ID为' . mysqli_insert_id($conn); mysqli_close($conn); ?>