Dans une véritable gestion en arrière-plan, les administrateurs peuvent modifier de nombreuses informations utilisateur. Si les autorisations sont ouvertes, l'administrateur peut même modifier le nom d'utilisateur de l'utilisateur et d'autres informations.
Dans les opérations réelles, il s'agit souvent de :
Sélectionner l'utilisateur à modifier
Modifier le contenu associé
Lors de la création de la page de liste des utilisateurs, nous vous avons complètement montré comment afficher les fonctions de modification des utilisateurs et de suppression d'utilisateurs dans la liste.
Cliquez pour sélectionner l'utilisateur à modifier dans la liste. Il devrait y avoir une page dédiée pour afficher le contenu qui doit être modifié. Nous vous l'avons également montré sur la deuxième photo ci-dessus.
Mais comment mettre les informations utilisateur lors de l'implémentation du code ?
edit.php affiche les informations de l'utilisateur
Processus de mise en œuvre :
1 Nous pouvons transmettre l'identifiant de l'utilisateur pour obtenir les informations de l'utilisateur. Utilisez des instructions SQL pour interroger les informations utilisateur.
<?php if (is_numeric($_GET['id'])) { $id = (int) $_GET['id']; } $sql = "select id,username from user where id = " . $id; $result = mysqli_query($conn, $sql); $data = mysqli_fetch_assoc($result); ?>
2. Attribuez les informations de l'utilisateur au formulaire. Lorsque l'utilisateur clique sur soumettre, nous soumettons la valeur modifiée par l'utilisateur dans la table du formulaire dans update.php. Parce que vous devez spécifier quel utilisateur modifier dans la condition Where modifiée lors de la mise à jour. Nous mettons donc l’ID de l’utilisateur dans le formulaire de saisie masqué. Lorsque vous cliquez sur Soumettre, l'ID masqué sera également transmis à la page de mise à jour.
Les noms d'utilisateur ne peuvent généralement pas être modifiés. Par conséquent, j'ai ajouté un paramètre en lecture seule à la fin du formulaire de saisie du nom d'utilisateur, et le nom d'utilisateur ne peut pas être modifié.
Le code est le suivant :
<form action="update.php" method="post"> 用户名:<input type="text" name="username" value="<?php echo $data['username'];?>" readonly><br /> 密码:<input type="password" name="password"><br /> <input type="hidden" value="<?php echo $data['id'];?>" name="id" /> <input type="submit" value="提交"> </form>
update.php opération de modification données utilisateur
En fait, nous ne pouvons changer que le mot de passe de l'utilisateur. Il y a deux situations :
1. L'utilisateur a changé le mot de passe
2. L'utilisateur n'a pas changé le mot de passe
En fait, on peut tromper le précédent opérations ordinaires qui ne comprennent pas la technologie.
1. S'il n'a pas changé son mot de passe, donnez-lui une invite de réussite
2. S'il a changé son mot de passe. Lorsque nous modifions réellement le mot de passe de l'utilisateur, cela indique également que le changement a réussi.
Obtenez l'ID utilisateur et le mot de passe
Nous devons obtenir l'ID utilisateur pendant le processus de mise en œuvre. Sinon, lorsque l'instruction de mise à jour est générée, toutes les données de la table entière seront modifiées sans la condition Where.
Les mots de passe étaient auparavant stockés à l'aide de md5. Par conséquent, si l'utilisateur modifie le mot de passe, celui-ci doit également être stocké dans md5.
$id = (int)$_GET['id']; $password = md5(trim($_POST['password']));
Générer une instruction SQL
Mettez l'ID utilisateur et le mot de passe dans l'instruction SQL modifiée et envoyez-la au serveur MySQL pour exécution. C'est-à-dire que l'opération de modification du mot de passe est terminée.
$sql = "update user set password='" . $password . "' where id = $id"; $result = mysqli_query($conn, $sql); if ($result) { echo '修改成功'; }
Démonstration globale de la représentation
Code source pour afficher les informations utilisateur sous la forme
<?php if (is_numeric($_GET['id'])) { $id = (int) $_GET['id']; } $sql = "select id,username from user where id = " . $id; $result = mysqli_query($conn, $sql); $data = mysqli_fetch_assoc($result); ?> <form action="update.php" method="post"> 用户名:<input type="text" name="username" value="<?php echo $data['username'];?>"><br /> 密码:<input type="password" name="password"><br /> <input type="hidden" value="<?php echo $data['id'];?>" name="id" /> <input type="submit" value="提交"> </form> <?php mysqli_close($conn); ?>
Code source modifié par update.php
<?php include 'connection.php'; $id = (int) $_POST['id']; if (trim($_POST['password'])) { $password = md5(trim($_POST['password'])); $sql = "update user set password='" . $password . "' where id = $id"; } else { echo '修改成功'; } $result = mysqli_query($conn, $sql); if ($result) { echo '修改成功'; }