راکت

تغییر پسورد در php

10 پاسخ

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


if(isset($_POST['sabt'])) {

    $password = md5($_POST['password']);
    $newPassword = md5 ($_POST['new-password']);
    $passwordConf = md5 ($_POST['password-conf']);

    $check =  mysqli_query($db , "SELECT * FROM users WHERE password = $password");

    if ($check && $password == $passwordConf)
    {
       $editUser = mysqli_query($db , "UPDATE users SET password ='$newPassword'  WHERE password=$newPassword ");

        if($editUser){
        header("Location:adminpanel.php");
        }
    } else {

        echo '<div class="alert alert-danger ">پسورد و تکرار پسورد با هم برابر نیست.</div>' ;

    }
}
ثبت پرسش جدید

پاسخ‌ها

10
آرش تقوی
آرش تقوی
@arash.taghavi69

تخصص: برنامه نویس فول استک

ارور رو قرار بدین اینجا. اما چیزی که الان واضحه اینه که باید تمام متغیر های رشته ای توی کوئری باید داخل تک کوتیشن باشن. این دوتا جارو اصلا کن :

$check =  mysqli_query($db , "SELECT * FROM users WHERE password = '$password'");

و اینجا:

$editUser = mysqli_query($db , "UPDATE users SET password ='$newPassword'  WHERE password='$newPassword'");
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

پیشنهاد میکنم از یه ORM توی پروژه های PHP استفاده کنی
ممکنه کمی زمان ببره تا به نحوه استفاده اش عادت کنی، اما وقتی عادت کنی به شدت سرعت توسعه رو بالا میبره
Doctrine ابزار بسیار عالی هست ..یه سر به وب سایتش بزن

https://www.doctrine-project.org/projects.html

شاید پاسخ شما همین‌جا باشد

paradox
paradox
@wxyz4367

@arash.taghavi69
ممنون انجام دادم ولی مثل قبل فقط قسمت دوم شرط که گفتم پسورد و تکرار پسورد برابر نیست اجرا میشه

paradox
paradox
@wxyz4367

@ali.bayat
ممنون از شما متاسفانه زبانم خوب نیست نمیتونم این سایت درک کنم

paradox
paradox
@wxyz4367

کسی میتونه راهنماییم کنه چرا اپدیت پسورد انجام نمیشه ؟ :)

آرش تقوی
آرش تقوی
@arash.taghavi69

تخصص: برنامه نویس فول استک

این query که نوشتی فکر میکنم هیچ وقت انجام نمیشه :

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

احتمالا منظورت از $newPassword دوم (توی شرط where) متغیر $password بوده.

Reza
Reza
@Rezanp7

تخصص: برنامه نویس وب

سلام

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

این کوئری دوتا مشکل داره اولیش اینکه اونجا که گفتی where باید متغییر password$ بدی بهش نه newPassword$
اما این کارم کنی باز کد باگ داره
فرض کن دو نفر پسوردشون یکی باشه اینطوری پسورد هر دو نفر تغییر میکنه تو باید از طریق url یا هرچی ایدی کاربر رو بگیری و where رو از طریق id$ انجام بدی.

fgh
fgh
@fgh

تخصص: توسعه دهنده لاراول

اصن باگ داره بخش CHECK گیرم دو تا کاربر سایت پسوردشون یکی باشه اینطوری به مشکل بر میخوره فک کنم بهتره با ID کاربر پیش ببری بخش چک رو

paradox
paradox
@wxyz4367

الان به این صورت نوشتم از دوتا کوئری ارور میگیره


Notice: Undefined variable: id in C:\xampp\htdocs\amoozesh\paneladmin\index.php on line 103

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\amoozesh\paneladmin\index.php on line 103

Notice: Undefined variable: db in C:\xampp\htdocs\amoozesh\paneladmin\index.php on line 111

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\amoozesh\paneladmin\index.php on line 111
if(isset($_POST['sabt'])) {

    $password = md5($_POST['password']);
    $newPassword = md5($_POST['new-password']);
    $passwordConf = md5($_POST['password-conf']);

    $check =  mysqli_query($db , "SELECT * FROM users WHERE id = $id");

    if ($newPassword !== $passwordConf)
    {
        echo '<div class="alert alert-danger ">پسورد و تکرار پسورد با هم برابر نیست.</div>' ;

    } else {

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

        if($editUser){
        header("Location:index.php");

        }
    }
}
آرش تقوی
آرش تقوی
@arash.taghavi69

تخصص: برنامه نویس فول استک

خب بایدم بگیره. الان شما آی دی رو از کجا داری دریافت میکنی؟

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

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