paradox
3 سال پیش توسط paradox مطرح شد
15 پاسخ

مشکل در تغییر پسورد

سلام
برای تغییر پسورد کد زیر نوشتم
تغییر انجام میشه
فقط مشکلی که هست هر پسوردی جای پسورد قدیمی بزارم پسورد جدید عوض میشه


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");

        }
    }
}

ثبت پرسش جدید
ممدو
تخصص : در حال یادگیری ...
@mamado 3 سال پیش مطرح شد
0

@wxyz4367 سلام دوست خوبم

اینو متوجه نشدم ، ولی فعلا از روی خود کدها یه ارور میبینم

فقط مشکلی که هست هر پسوردی جای پسورد قدیمی بزارم پسورد جدید عوض میشه

 $editUser = mysqli_query($db , 'UPDATE users SET password ="$newPassword"  WHERE id="$id" ');

تست کنید


paradox
@wxyz4367 3 سال پیش مطرح شد
0

@mamado
ممنون ازت
حل نشد

من سه تا input دارم
یکی مربوط به پسورد قدیمی میشه که تو دیتابیس ذخیره شده
دومی پسورد جدید
سومی هم تکرار پسورد

با کدی که نوشتم پسورد تغییر میکنه ولی مشکلی که دارم تو input مربوط به پسورد قدیمی هر چیزی میشه نوشت و اصلا به اینکه تو دیتابیس چه پسوردی ست شده کاری نداره
برای این مشکل چیکار کنم یا چه شرطی باید بزارم که پسورد تو دیتابیس رو چک کنه اگه درست بود اجازه تغییر پسورد داده بشه


سهیل ملکی
تخصص : کارآموز برنامه نویسی
@soheilsmg 3 سال پیش مطرح شد
0

چک کردین که شرط بالا درسته یا نه ؟


paradox
@wxyz4367 3 سال پیش مطرح شد
0

@kuroshparsi11228
کدها رو بالا فرستادم نمیدونم کجاش مشکل داره


paradox
@wxyz4367 3 سال پیش مطرح شد
0

الان به این شکل نوشتم
فقط ارور زیر دارم

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!';

        }
    }
}

paradox
@wxyz4367 3 سال پیش مطرح شد
0

دوستان میشه راهنمایی کنید ضروریه


milad
تخصص : learning about laravel
@milad.rahimi2266 3 سال پیش مطرح شد
0

@wxyz4367
سلام, به نظرم شما یک متغییر تعریف کنید که یک کوئری بگیره و تمام رکورد های آیدی وارد شده رو بیاره


milad
تخصص : learning about laravel
@milad.rahimi2266 3 سال پیش مطرح شد
0

کدهاتون را الان دیدم شما fetch بگیر از متغییر $check و شرط جدید بزار

    $answer = mysqli_fetch_array($check);

milad
تخصص : learning about laravel
@milad.rahimi2266 3 سال پیش آپدیت شد
0

شری مد نظر باید چک کنه کع آیا پسورد قدیمی که وارد شده با رکورد قسمت فتچ برابر هست یا نه اگر هست که کوئری جدید اجرا بشه و اگر نیست که ارور لازم و بده

    if($password ==$answer['password']){
mysqli_query($db, "update users set password = {$newpassword} where id = $id;

امیدوارم به کارت بیاد


paradox
@wxyz4367 3 سال پیش مطرح شد
0

@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!';
        }
    }
}

paradox
@wxyz4367 3 سال پیش مطرح شد
0

دوستان میشه راهنمایی کنید ضررویه


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
0

سلام ، این کد رو جایگزین کنید

$password = password_hash($_POST['pass'], PASSWORD_BCRYPT);
    $newPassword = password_hash($_POST['new-password'], PASSWORD_BCRYPT);
    $passwordConf = password_hash($_POST['password-conf'], PASSWORD_BCRYPT);

paradox
@wxyz4367 3 سال پیش مطرح شد
0

@eniack
ممنون اینکارو انجام دادم ولی متاسفانه پسورد عوض نمیشه تو این حالت
پسورد اولی رو بدون هش قرار دادم باز هم موفق نشدم


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
0
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!';
        }
    }
}

paradox
@wxyz4367 3 سال پیش مطرح شد
0

@eniack
اصلا هیچ تغییری اعمال نمیشه 😥 هیچ اتفاقی نیفتاد


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام