Есть 2 формы:
- для смены пароля;
- для смены логина.
Пароль в данном случае захеширован, через password_hash($password, PASSWORD_DEFAULT); Я всё пытаюсь и никак не могу сделать так, чтобы пароль захешированный изменялся. Обычный пароль меняется, а захешированный нет. Я не знаю, как это реализовать, может кто помочь? Вот код. Там много ошибок. Я в программировании новичок, так что, не ругайтесь.
Вот PHP код:
session_start();
$conn_db = mysqli_connect("localhost","root","","practice");
$fsmsg = "";
$username = $_POST['username'];
$email = $_POST['email'];
$old_password = $_POST['old_password'];
$new_password = $_POST['new_password'];
$password = $_POST['password'];
$new_username = $_POST['new_username'];
$hash = password_hash($password, PASSWORD_DEFAULT);
// Если кнопка апдейт нажата, изменить значения полей
if (isset($_POST['update'])){
$update2 = "UPDATE `users` SET `password`='$new_password' WHERE `username`='$username' AND `password`='$old_password'";
$resultupdate = mysqli_query($conn_db, $update2) or die (mysqli_error($conn_db));
}
if (isset($_POST['update'])){
$update = "UPDATE `users` SET `username`='$new_username' WHERE `email`='$email' AND `password`='$password'";
$resultupdate = mysqli_query($conn_db, $update) or die (mysqli_error($conn_db));
}
Вот код форм:
<div class="container-fluid padding">
<div class="row padding">
<div class="offset-lg-1 col-lg-5">
<br>
<form action="red.php" method="POST" style="display: block; width: 400px; margin: 0 auto; background: #f2f1f0; padding: 20px; color:#555; text-align: center;">
<h3>Форма для смены пароля</h3>
<br>
<div class="form-group">
<label for="exampleInputlogin"><h3>Введите имя пользователя</h3></label>
<input type="login" name="username" class="form-control" id="exampleInputlogin2" aria-describedby="loginHelp" required placeholder="Введите имя пользователя" pattern="[a-zA-Z0-9]+" title="Используйте только цифры и латинские буквы">
</div>
<div class="form-group">
<label for="exampleInputpassword"><h3>Старый пароль</h3></label>
<input type="password" name="old_password" class="form-control" id="exampleInputpassword" aria-describedby="passwordHelp" required placeholder="Введите старый пароль" pattern="[a-zA-Z0-9]+" title="Используйте только цифры и латинские буквы">
</div>
<div class="form-group">
<label for="exampleInputPassword2"><h3>Новый пароль</h3></label>
<input type="password" name="new_password" class="form-control" id="exampleInputPassword2" aria-describedby="passwordHelp" required placeholder="Введите новый пароль" pattern="[a-zA-Z0-9]+" title="Используйте только цифры и латинские буквы">
</div>
<div class="form-check">
<input class="form-check-input" name="id" type="checkbox" value="" id="invalidCheck3" required>
<label class="form-check-label" for="invalidCheck3"><h5>Подтвердить изменение</h5></label>
</div>
<form method="POST">
<button type="submit" class="btn btn-success btn-block" name="update">Изменить</button>
</form>
</form>
</div>
<div class="col-lg-5">
<br>
<form action="red.php" method="POST" style="display: block; width: 400px; margin: 0 auto; background: #f2f1f0; padding: 20px; color:#555; text-align: center;">
<h3>Форма для смены логина</h3>
<br>
<div class="form-group">
<label for="exampleInputemail"><h3>Введите Email</h3></label>
<input type="email" name="email" class="form-control" id="exampleInputemail" aria-describedby="emailHelp" required pattern="[a-zA-Z0-9-@-.]+" placeholder="Введите свой Email">
</div>
<div class="form-group">
<label for="exampleInputpassword"><h3>Введите пароль</h3></label>
<input type="password" name="password" class="form-control" id="exampleInputpassword" aria-describedby="passwordHelp" required placeholder="Введите пароль" pattern="[a-zA-Z0-9]+" title="Используйте только цифры и латинские буквы">
</div>
<div class="form-group">
<label for="exampleInputlogin"><h3>Новый логин</h3></label>
<input type="login" name="new_username" class="form-control" id="exampleInputlogin" aria-describedby="loginHelp" required placeholder="Введите новый логин" pattern="[a-zA-Z0-9]+" title="Используйте только цифры и латинские буквы">
</div>
<div class="form-check">
<input class="form-check-input" name="id" type="checkbox" value="" id="invalidCheck3" required>
<label class="form-check-label" for="invalidCheck3"><h5>Подтвердить изменение</h5></label>
</div>
<form method="POST">
<button type="submit" class="btn btn-success btn-block" name="update">Изменить</button>
</form>
</form>
</div>
</div>
</div>
<form class="text-center text-danger">
<?php
if(!empty($fsmsg)) echo("<br><h2>{$fsmsg}</h2>\n");
?>
</form>