Modifier les informations utilisateur

Modifier les informations utilisateur

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 :

  1. Sélectionner l'utilisateur à modifier

    QQ截图20161010103141.png

    2 . Modifier le contenu pertinent

    QQ截图20161010103239.png

3. Exécutez l'instruction de modification et générez une invite

QQ截图20161010103321.png.

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 modifie les données de l'utilisateur

En fait, on ne peut modifier que le mot de passe de l'utilisateur. Il existe 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 les opérateurs ordinaires qui ne comprends pas la technologie.

1. S'il n'a pas changé son mot de passe, donnez-lui un message 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

Insérez 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 '修改成功';
}


Formation continue
||
<?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); ?>
soumettreRéinitialiser le code