>我编写了一个脚本来通过输入更改管理员密码但问题是当我写新密码时。它在所有表中发生了变化,这意味着新密码成为所有用户的新密码,我希望它仅适用于我选择的用户请你帮我这是脚本:
<form method="post">
<div style="padding-left:40px;" class="azer" class="adm">
<ul style="list-style : none; " >
<li style="padding-left:5px;">
<h6 style="float:left; ">new password :</h6>
<input style="float:left; margin-left:10px; " type="text" name="zd_pass" placeholder="*******">
</li>
<li><input style="margin-left:10px;" type="submit" name="save" value="save" class="btn btn-info" ></li>
</ul>
</div>
</form>
<?php
if(isset($_GET['id'])){
$id = (int)$_GET['id'];
$get_id = "select * from admin where zd_id='$id'";
$run_id = mysqli_query($db,$get_id);
if(mysqli_num_rows($run_id) > 0){
if(isset($_POST['save'])){
$zd_id = @$_POST['zd_id'];
$zd_pass = @$_POST['zd_pass'];
$update = "update admin set zd_pass='$zd_pass'";
$run_update = mysqli_query($db,$update);
if(isset($run_update)){
}} }} ?>
您需要将更新限制为单行,就像对上一个选择所做的那样。您可以通过设置这样的 WHERE 子句来执行此操作,否则它将更新整个数据库。
此外,将更新提交到数据库执行后的测试也将不可靠。您应该将其更改如下
$update = "update admin set zd_pass='$zd_pass' WHERE zd_id='$id'";
$run_update = mysqli_query($db,$update);
if( $run_update !== FALSE) {
// the update worked
} else {
// the update failed
}