محمود خسروی
6 سال پیش توسط محمود خسروی مطرح شد
2 پاسخ

چطور میتوانم اطلاعات کاربری را در پروفایل کاربری ویرایش کنم

سلام من پروفایل کاربری راساختم که شبیه زیر است.

http://uupload.ir/files/1rii_untitled.png

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

edit.blade.php

<form method="POST" action="{{ route('sqlupdate') }}">
    @csrf
    {{ method_field('PATCH') }}
    <div class="form-group row">
        <label for="email" class="col-md-1 col-form-label text-md-right">{{ __('ایمیل') }}</label>
        <div class="col-md-5">
            <input id="email" type="text" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') ? : user()->email }}" required autocomplete="email" autofocus>
            @error('email')
            <span class="invalid-feedback" role="alert">
                    <strong>{{ $message }}</strong>
                </span>
            @enderror
        </div>
    </div>
    <div class="form-group row">
        <label for="oldPassword" class="col-md-1 col-form-label text-md-right">{{ __('رمز عبور قدیمی') }}</label>
        <div class="col-md-5">
            <input id="oldPassword" type="password" class="form-control @error('oldPassword') is-invalid @enderror" name="oldPassword" value="{{ old('oldPassword') }}" autocomplete="oldPassword" autofocus>
            @error('oldPassword')
            <span class="invalid-feedback" role="alert">
                    <strong>{{ $message }}</strong>
                </span>
            @enderror
        </div>
    </div>
    <div class="form-group row">
        <label for="password" class="col-md-1 col-form-label text-md-right">{{ __('رمز عبور') }}</label>
        <div class="col-md-5">
            <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">
            @error('password')
            <span class="invalid-feedback" role="alert">
                        <strong>{{ $message }}</strong>
                    </span>
            @enderror
        </div>
    </div>
    <div class="form-group row">
        <label for="password-confirm" class="col-md-1 col-form-label text-md-right">{{ __('تکرار رمز') }}</label>
        <div class="col-md-5">
            <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
        </div>
    </div>
    <div class="form-group row">
        <label for="address" class="col-md-1 col-form-label text-md-right">{{ __('آدرس') }}</label>
        <div class="col-md-5">
            <textarea id="address" type="text" class="form-control @error('address') is-invalid @enderror" name="address" required autocomplete="address" autofocus>{{ old('address') ? : user()->address }}</textarea>
            @error('address')
                <span class="invalid-feedback" role="alert">
                    <strong>{{ $message }}</strong>
                </span>
            @enderror
        </div>
    </div>
    <div class="form-group row mb-0">
        <div class="col-md-1">
            <button type="submit" class="btn btn-block btn-primary">
                {{ __('ثبت') }}
            </button>
        </div>
    </div>
</form>

MyCpntroller

public function sqlupdate(Request $request)
{
    Auth::user()->update([
        'address' => $request['address'],
        'email' => $request['email'],
    ]);
    $hashedPassword = auth()->user()->password;
    if (Hash::check($request->oldpassword, $hashedPassword)){
        $user = User::find(Auth::id());
        $user->password = Hash::make($request->password);
    }
    return redirect()->back();
}

ثبت پرسش جدید
علی فرمانی
تخصص : فرانت اند
@farmani 6 سال پیش آپدیت شد
0

@oxbir

ابتدا بیاین با ولیدیشن چک کنید اگر مقدار پسورد وارد نشده بود و فیلد فرمش خالی بود مقدارشو برای ذخیره تو دیتابیس ارسال نکنه و فقط ایمیل و سایر موارد ذخیره بشه ، در صورت وارد شدنش اعمال کنه و ذخیره کنه . کاری نداره این مورد .
درباره پسورد قدیمی خوب اگه با md5 یا هرچیز دیگه ذخیره کردینش پسورد رو از قبل ، بیاین مجدد پسوردی که داخل فیلد پسورد قدیمی وارد میشه رو md5 کنید و با مقدار داخل دیتابیس مقایسه کنید اگه اوکی بود مقدار های پسورد جدید وارد شده رو جایگزین کنید همین .


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

من همین الان ولیدیشن را چک کردم

$this->validate($request, [
    'oldPassword' => Auth::user()->password,
    'password' => ''required|confirmed|min:6|different:password',
]);

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

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