5 پاسخ

تغییر پسورد

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

قسمت web.php

Route::namespace('Profile')->middleware(['auth', 'verified'])->group(function () {
Route::resource('/changePassword', 'changePasswordController', ['only' => ['index', 'update']]);
});

قسمت changePassword.blade.php

@extends('layouts.master')

@section('title' , 'Change Password')

@section('content')

<div class="Profile" dir="rtl">
    <div class="row container">
        <aside class="sidebarWrap sidebar-group col-sm-12 col-md-4 col-lg-3 col-xl-3 ">
            @include('userPanel.sidebar')
        </aside>
        <div id="main" class="col-sm-12 col-md-8 col-lg-9 col-xl-9">
            <div class="personal_information">
                <p class="bold" id="blue_icon" class="">بروزرسانی گذرواژه</p>
            </div>
            @include('admin.layouts.adminErrors')
            <div class="row container personal_information">
                <div class="col-sm-12 col-md-12 col-lg-12 col-xl-12">
                    <div class="tab-content">
                        <div class="tab-pane active" id="home">
                            <form class="form row" action="{{ route('changePassword.update', ['changePassword' => $user->id]) }}" method="POST" id="registrationForm" style="margin-bottom: 0px;padding-right: 0.75rem;font-size: 18px;font-weight: bold;">
                                @csrf
                                @method('PATCH')
                                <div class=" col-sm-12 col-md-12 col-lg-6 col-xl-6">
                                    <div class="form-group">
                                        <div class="col-xs-6">
                                            <label for="first_name">
                                                <p>گذرواژه فعلی:</p>
                                            </label>
                                            <input type="password" name="current_password" class="form-info" id="inputPassword" placeholder="********" title="enter your first name if any.">
                                        </div>
                                    </div>
                                </div>
                                <div class="col-sm-12 col-md-12 col-lg-6 col-xl-6 ">
                                    <div class="form-group">
                                        <div class="col-xs-6">
                                            <label for="nationalCode">
                                                <p>گذرواژه جدید:</p>
                                            </label>
                                            <input type="password" name="password" class="form-info" id="inputPassword2" placeholder="********" title="enter your nationalCode.">
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        <div class="col-xs-6">
                                            <label for="nationalCode">
                                                <p>تایید گذرواژه جدید:</p>
                                            </label>
                                            <input type="password" name="password_confirmation" class="form-info" id="inputPassword2" placeholder="********" title="enter your nationalCode.">
                                        </div>
                                    </div>
                                </div>
                                <button class="btn btn-submit " type="submit">بروزرسانی</button>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

@endsection

قسمت changePasswordController.php

<?php

namespace App\Http\Controllers\Profile;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class changePasswordController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $user = Auth::user();
        return view('userPanel.changePassword', compact('user'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, User $changePassword)
    {
        if (!is_null($request->password)) {
            $request->validate([
                'password' => ['required', 'string', 'min:8', 'confirmed'],
            ]);

            $data['password'] = $request->password;
        }

        $changePassword->update($data);

        return redirect(route('userPanel.index'));
    }

}

ثبت پرسش جدید
مهران مرندی
تخصص : برنامه نویس
@mehranmarandi 3 سال پیش آپدیت شد
1

با اساس کد خودتون یه همچین چیزی میشه (با گوشی یه مقدار سخته نوشتن کد، شاید اشکال سینتکسی داشته باشه

            $request->validate([
                'password' => ['required', 'string', 'min:8', 'confirmed'],
                'old_password' => ['required'],
            ]);

            if (Hash::check($request->old_password, $changePassword->password)) {
                $data['password'] = $request->password;
            $changePassword->update($data);

            }

دقت کنید که فیلد oldpassword رو باید در view از کاربر دریافت کنید.
و تابع هش هم باید user بشه

use Illuminate\Support\Facades\Hash;

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

میتونید همزمان با رمز جدید رمز قدیم کاربر رو هم دریافت کنید با کد زیر چک کنید که رمزش درست هست یا نه خروجی بهتون true false میده

Hash::check('INPUT PASSWORD', $user->password);

محمدهادی باقریان
تخصص : web developer
@mohammadhadi 3 سال پیش مطرح شد
0

ممنون الان تستش میکنم


محمدهادی باقریان
تخصص : web developer
@mohammadhadi 3 سال پیش مطرح شد
0

@mehranmarandi90 دقیق نمیدم چطوری توی کدم بزارمش میشه بیشتر راهنمایی کنید

الان به این شکل نوشتم درسته؟

public function update(Request $request, User $changePassword)
    {
        if (Hash::check('current_password', $changePassword->password)) {

            if (!is_null($request->password)) {
                $request->validate([
                    'password' => ['required', 'string', 'min:8', 'confirmed'],
                ]);

                $data['password'] = $request->password;
            }
            $changePassword->update($data);
        }

        return redirect(route('userPanel.index'));
    }

مهران مرندی
تخصص : برنامه نویس
@mehranmarandi 3 سال پیش آپدیت شد
1

با اساس کد خودتون یه همچین چیزی میشه (با گوشی یه مقدار سخته نوشتن کد، شاید اشکال سینتکسی داشته باشه

            $request->validate([
                'password' => ['required', 'string', 'min:8', 'confirmed'],
                'old_password' => ['required'],
            ]);

            if (Hash::check($request->old_password, $changePassword->password)) {
                $data['password'] = $request->password;
            $changePassword->update($data);

            }

دقت کنید که فیلد oldpassword رو باید در view از کاربر دریافت کنید.
و تابع هش هم باید user بشه

use Illuminate\Support\Facades\Hash;

محمدهادی باقریان
تخصص : web developer
@mohammadhadi 3 سال پیش مطرح شد
0

درست شد خیلی ممنون لطف کردید❤️🙏


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

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