سلام
برای تغییر پسورد کد زیر نوشتم
تغییر انجام میشه
فقط مشکلی که هست هر پسوردی جای پسورد قدیمی بزارم پسورد جدید عوض میشه
if(isset($_POST['sabt'])) {
$id = $_POST['id'];
$password = password_hash($_POST['pass'], PASSWORD_BCRYPT);
$newPassword = password_hash($_POST['new-password'], PASSWORD_BCRYPT);
$passwordConf = password_hash($_POST['password-conf'], PASSWORD_BCRYPT);
$check = mysqli_query($db , "SELECT * FROM users WHERE id = $id");
if (password_verify($newPassword, $passwordConf)) {
echo 'Password is valid!';
}
else {
$editUser = mysqli_query($db , "UPDATE users SET password ='$newPassword' WHERE id=$id ");
if($editUser){
header("Location:index.php");
}
}
}@wxyz4367 سلام دوست خوبم
اینو متوجه نشدم ، ولی فعلا از روی خود کدها یه ارور میبینم
فقط مشکلی که هست هر پسوردی جای پسورد قدیمی بزارم پسورد جدید عوض میشه
$editUser = mysqli_query($db , 'UPDATE users SET password ="$newPassword" WHERE id="$id" ');
تست کنید
@mamado
ممنون ازت
حل نشد
من سه تا input دارم
یکی مربوط به پسورد قدیمی میشه که تو دیتابیس ذخیره شده
دومی پسورد جدید
سومی هم تکرار پسورد
با کدی که نوشتم پسورد تغییر میکنه ولی مشکلی که دارم تو input مربوط به پسورد قدیمی هر چیزی میشه نوشت و اصلا به اینکه تو دیتابیس چه پسوردی ست شده کاری نداره
برای این مشکل چیکار کنم یا چه شرطی باید بزارم که پسورد تو دیتابیس رو چک کنه اگه درست بود اجازه تغییر پسورد داده بشه
شاید پاسخ شما همینجا باشد
@kuroshparsi11228
کدها رو بالا فرستادم نمیدونم کجاش مشکل داره
الان به این شکل نوشتم
فقط ارور زیر دارم
Fatal error: Uncaught Error: Cannot use object of type mysqli_result as array in C:\xampp\htdocs\amoozesh\paneladmin\index.php:161 Stack trace: #0 {main} thrown in C:\xampp\htdocs\amoozesh\paneladmin\index.php on line 161
if(isset($_POST['sabt'])) {
$id = $_POST['id'];
$password = $_POST['password'];
$newPassword = $_POST['new-password'];
$passwordConf = $_POST['password-conf'];
$check = mysqli_query($db , "SELECT * FROM users WHERE id = $id");
if (password_verify($password, $check['password'])) {
$editUser = mysqli_query($db , "UPDATE users SET password ='$newPassword' WHERE id=$id ");
if($editUser){
header("Location:index.php");
}
else {
echo 'Password is invalid!';
}
}
}دوستان میشه راهنمایی کنید ضروریه
@wxyz4367
سلام, به نظرم شما یک متغییر تعریف کنید که یک کوئری بگیره و تمام رکورد های آیدی وارد شده رو بیاره
@milad.rahimi2266
سلام ممنون
به این شکل نوشتم فقط مشکلی که هست پسورد که عوض میکنه دیگه هش شده ذخیره نمیکنه تو دیتابیس
if(isset($_POST['sabt'])) {
$id = $_POST['id'];
$password = $_POST['password'];
$newPassword = $_POST['new-password'];
$passwordConf = $_POST['password-conf'];
if($newPassword == $passwordConf)
{
$check = mysqli_query($db , "SELECT * FROM users WHERE id = $id");
$user = mysqli_fetch_assoc($check);
if (password_verify($password, $user['password'])) {
$editUser = mysqli_query($db , "UPDATE users SET password ='$newPassword' WHERE id=$id ");
if($editUser){
header("Location:index.php");
}
}
else {
echo 'Password is invalid!';
}
}
}دوستان میشه راهنمایی کنید ضررویه
@eniack
ممنون اینکارو انجام دادم ولی متاسفانه پسورد عوض نمیشه تو این حالت
پسورد اولی رو بدون هش قرار دادم باز هم موفق نشدم
if(isset($_POST['sabt'])) {
$id = $_POST['id'];
$password = $_POST['password'];
$newPassword = $_POST['new-password'];
$passwordConf = $_POST['password-conf'];
if($newPassword == $passwordConf)
{
$check = mysqli_query($db , "SELECT * FROM users WHERE id = $id");
$user = mysqli_fetch_assoc($check);
if (password_verify($password, $user['password'])) {
$newPassword = password_hash($newPassword, PASSWORD_BCRYPT);
$editUser = mysqli_query($db , "UPDATE users SET password ='$newPassword' WHERE id=$id ");
if($editUser){
header("Location:index.php");
}
}
else {
echo 'Password is invalid!';
}
}
}@eniack
اصلا هیچ تغییری اعمال نمیشه 😥 هیچ اتفاقی نیفتاد