Я пишу скрипт для изменения пароля администратора через вход
Но проблема в том, когда я пишу новый пароль.
он изменяется во всех таблицах, что означает, что новый пароль становится новым паролем для всех пользователей, и я хочу, чтобы он был только для пользователя, которого я выбрал
пожалуйста, если вы можете мне помочь
это сценарий:
<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
}
Других решений пока нет …