Ubah suai maklumat pengguna
Ubah suai maklumat pengguna
Dalam pengurusan latar belakang sebenar, pentadbir boleh mengubah suai banyak maklumat pengguna. Jika kebenaran dibuka, pentadbir juga boleh mengubah suai nama pengguna dan maklumat lain pengguna.
Dalam operasi sebenar, selalunya:
Pilih pengguna untuk diubah suai
2 .
Apabila membuat halaman senarai pengguna, kami telah menunjukkan sepenuhnya kepada anda cara memaparkan fungsi mengedit pengguna dan memadam pengguna dalam senarai.
Klik untuk memilih pengguna yang akan diubah suai daripada senarai. Kami juga menunjukkannya kepada anda dalam gambar kedua di atas. Tetapi bagaimana untuk memasukkan maklumat pengguna semasa melaksanakan kod?
edit.php memaparkan maklumat pengguna
Proses pelaksanaan :
1. Kami boleh lulus ID pengguna untuk mendapatkan maklumat pengguna. Gunakan pernyataan SQL untuk menanyakan maklumat pengguna.<?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. Berikan maklumat pengguna pada borang. Apabila pengguna mengklik hantar, kami menyerahkan nilai yang diubah suai oleh pengguna dalam jadual borang dalam update.php. Kerana anda perlu menentukan pengguna mana yang hendak diubah suai dalam keadaan di mana diubah suai dalam kemas kini. Jadi, kami meletakkan ID pengguna dalam borang tersembunyi input. Apabila anda mengklik hantar, ID tersembunyi juga akan dihantar ke halaman kemas kini. Nama pengguna biasanya tidak dibenarkan untuk diubah suai. Oleh itu, saya menambah parameter baca sahaja pada akhir borang input nama pengguna, dan nama pengguna tidak dibenarkan untuk diubah suai. Kod adalah seperti berikut:
<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 mengubah suai data pengguna
Sebenarnya, kami hanya boleh mengubah suai kata laluan pengguna. Terdapat dua situasi:
1 Pengguna telah menukar kata laluan
2 Pengguna tidak menukar kata laluan
Malah, kita boleh menipu pengendali biasa yang tidak memahami teknologi.
1 Jika dia tidak menukar kata laluannya, berikan dia mesej kejayaan
2. Apabila kami benar-benar menukar kata laluan pengguna, ia juga menggesa bahawa perubahan itu berjaya.
Dapatkan ID pengguna dan kata laluan
Kami perlu mendapatkan ID pengguna semasa proses pelaksanaan. Jika tidak, apabila pernyataan kemas kini dijana, semua data dalam keseluruhan jadual akan diubah suai tanpa syarat di mana.
Kata laluan sebelum ini disimpan menggunakan md5. Oleh itu, jika pengguna menukar kata laluan, kata laluan juga harus disimpan dalam md5.
$id = (int)$_GET['id']; $password = md5(trim($_POST['password']));
Jana pernyataan SQL
Masukkan ID pengguna dan kata laluan ke dalam pernyataan SQL yang diubah suai dan hantar ke pelayan MySQL untuk dilaksanakan. Iaitu, operasi menukar kata laluan selesai.
$sql = "update user set password='" . $password . "' where id = $id"; $result = mysqli_query($conn, $sql); if ($result) { echo '修改成功'; }
Demonstrasi perwakilan keseluruhan
Kod sumber untuk memaparkan maklumat pengguna dalam borang
<?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); ?>
Kod sumber diubah suai oleh kemas kini.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 '修改成功'; }