سلام
برای تغییر پسورد کد زیر نوشتم
تغییر انجام میشه
فقط مشکلی که هست هر پسوردی جای پسورد قدیمی بزارم پسورد جدید عوض میشه
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 مربوط به پسورد قدیمی هر چیزی میشه نوشت و اصلا به اینکه تو دیتابیس چه پسوردی ست شده کاری نداره
برای این مشکل چیکار کنم یا چه شرطی باید بزارم که پسورد تو دیتابیس رو چک کنه اگه درست بود اجازه تغییر پسورد داده بشه
الان به این شکل نوشتم
فقط ارور زیر دارم
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!';
}
}
}
کدهاتون را الان دیدم شما fetch بگیر از متغییر $check و شرط جدید بزار
$answer = mysqli_fetch_array($check);
شری مد نظر باید چک کنه کع آیا پسورد قدیمی که وارد شده با رکورد قسمت فتچ برابر هست یا نه اگر هست که کوئری جدید اجرا بشه و اگر نیست که ارور لازم و بده
if($password ==$answer['password']){
mysqli_query($db, "update users set password = {$newpassword} where id = $id;
امیدوارم به کارت بیاد
@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!';
}
}
}
سلام ، این کد رو جایگزین کنید
$password = password_hash($_POST['pass'], PASSWORD_BCRYPT);
$newPassword = password_hash($_POST['new-password'], PASSWORD_BCRYPT);
$passwordConf = password_hash($_POST['password-conf'], PASSWORD_BCRYPT);
@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!';
}
}
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟