13.6 修改用户信息
在真正的后台管理中管理员可以修改用户的很多信息。如果开放权限,管理员连用户的用户名这些信息都可以修改掉。
在真正的操作中,往往是:
- 选择要修改的用户
- 修改相关内容
- 执行修改语句,并产生提示
在做用户列表页的时候,我们已经向大家完整的展示过了如何在列表中显示编辑用户和删除用户的功能。
从列表中点击选择要修改的用户,应该有一个专门的页面来显示需要修改的内容。我们在上面的第二张图中也为大家做了展示。
可是代码实现的时候如何把用户信息放进来呢?
edit.php 展示用户信息
实现过程:
一. 我们可以将用户的 ID 在 get 中进行传参,得到用户信息。使用 SQL 语句将用户信息查询出来。
<?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 表单中。当用户点击提交时,我们在 update.php 提交用户在 form 表当中修改的值。因为在 update 中修改的 where 条件中需要指定修改哪个用户。所以,我们在 input 隐藏表单中放入用户的 ID。当点击提交的时候,隐藏的 ID 也会传入到 update 页面中。
用户名通常是不让修改的。因此,我在 username 这一个 input 表单最后增加了一个:readonly 参数,不准修改用户名。
代码如下:
<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 修改操作用户数据
实际上,我们只能够修改用户的密码。有两种情况:
- 用户修改了密码
- 用户没有修改密码
其实我们可以欺骗前面的不懂技术的普通操作员。
- 如果他没有修改密码,也给他提示成功
- 如果他修改了用户的密码。我们真正的修改掉用户的密码,也提示修改成功。
获取用户 ID 和密码
我们实现的过程当中需要获取用户 ID。不然 update 语句生成的时候,没有 where 条件会将整个表的数据全部修改掉的。
密码之前是用 md5 存储的。因此,用户修改了密码,密码也应该用 md5 来存储。
$id = (int)$_GET['id'];
$password = md5(trim($_POST['password']));
生成 SQL 语句
将用户 ID 和密码放至到修改的 SQL 语句中,发送至 MySQL 服务器执行。即完成了修改密码的操作。
$sql = "update user set password='" . $password . "' where id = $id";
$result = mysqli_query($conn, $sql);
if ($result) {
echo '修改成功';
}
整体代示演示
在 form 表单中显示用户信息的源代码
<?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);
?>
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 '修改成功';
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论