سلام من به این شکل ویرایش کاربران تو php انجام دادم و به جواب رسیدم حالا میخام یه بخش درست کنم که اول رمز قدیمی نمایش بده بد رمز جدید و تکرا رمز جدید اضافه بشه مثل تصویر زیر، نمیدونم چطوری این کار انجام بدم نیاز به کمک و راهنمایی هست
<?php
if(isset($_GET['edit'])) {
$id = $_GET['edit'] ;
$query = mysqli_query($db,"SELECT * FROM users WHERE id=$id");
$userInfo = mysqli_fetch_assoc($query);
?>
<div class="container" style="text-align: center;">
<div class="row justify-content-center">
<div class="col-xl-6">
<form class="form-signin" action="user.php" method="post">
<img class="mb-4" src="../image/edit.png" alt="" width="72" height="72">
<h1 class="h3 mb-3 font-weight-normal" style="font-size: 20px;">ویرایش حساب کاربری</h1>
<input type="hidden" name="edit-id" value="<?php echo $userInfo['id']; ?>">
<label for="inputEmail" class="sr-only">Username</label>
<input type="text" name="display-name" value="<?php echo $userInfo['display_name']; ?>"
id="inputEmail" class="form-control" placeholder="نام کاربری" required autofocus>
<label for="inputEmail" class="sr-only">Email address</label>
<input type="email" name="email" value="<?php echo $userInfo['email']; ?>" id="inputEmail"
class="form-control" placeholder="ایمیل" required>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" name="password" id="inputPassword1" class="form-control"
placeholder="کلمه عبور" required>
<button class="btn btn-lg btn-primary" type="submit" name="edit-user">ویرایش حساب کاربری
</button>
</form>
</div>
</div>
</div>
<?php
}
if(isset($_POST['edit-user'])) {
$id = $_POST['edit-id'];
$username = $_POST['display-name'];
$email = $_POST['email'];
$password = md5($_POST['password']);
$editUser = mysqli_query($db,"UPDATE users SET display_name='$username' , email='$email' , password='$password' WHERE id=$id");
if($editUser) {
header("Location:user.php");
}
}
?>
سلام
در مرحلهی پردازش ریکوست ارسال شده، باید md5 اون پسورد قدیمی که کاربر وارد کرده رو با پسورد واقعی توی دیتابیس بسنجید، اگه برابر بود یعنی درست وارد کرده. البته استفاده از md5 برای پسورد پیشنهاد نمیشه، توی داکیومنتیشن PHP هم همین رو گفتن و دلیلشم واضحه.
@muhammad
در واقع مثل ثبت نام کع شرط گذاشتم اینجا بگم اگه پسورد با تکرار پسورد برابر بود اپدیت انجام بشه؟
شما باید دو چیز مختلف رو هندل کنید:
سلام.
گزینه آخر باید پسورد قدیمی با هش پسورد قدیمی برابر باشه.
در واقع شما الان در حال حاضر پسورد کاربر رو ذخیره کردید که قطعا باید بصورت رمزنگاری شده ذخیره کنید. حالا وقتی کاربر رمز قدیمی رو وارد میکنه برای اینکه مطمئن بشید خودش میخواد رمزش رو عوض کنه و عملیات مخربی نیست باید از درست بودن پسورد قدیمی هم مطلع بشید. به این صورت که پسورد قدیمی وارد شده توی فرم ویرایش رو هش میکنید و با مقدار دیتابیس مقایسه میکنید.
مواردی که دوستمون گفتن همش صحیح بود فقط چون اشتباه تایپی داشتن من تصحیح کردم :
اینکه هش پسورد قدیمی با پسورد قدیمی که توی دیتابیسه همخوانی داشته باشه، برای این از password_hash و password_verify میشه استفاده کرد.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟