راکت

مشکل در ثبت نام

6 پاسخ

سلام دوستان
من برای احراز هویت با کد ملی یک روت ایحاد کردم به اسم registerform که ابتدا کاربران باید کد ملیشون تایید بشه
تا بتونن وارد روت register بشن تا اینجا اکیه
مشکلی که داشتم این بود که اگه به صورت دستی تو مرورگر تایپ میکردمregister وارد روت میشد و ریدایرکتی انجام نمیشد
تو گفتگو قبل دوستان گفتن میدلور ایجاد کن
من میدلور ایجاد کردم مشکل ریدایرکت حل شد ولی ثبت نام دیگه انجام نمیشه و همینطور این میدلوری که تعریف کردم حتی بعد از اینکه ثبت نام کاربر انجام میشه ریدایرکت میکنه به روت registerform

کدهای register controller

    protected function validator(array $data , Request $request)
    {

        if($request->session()->has('codmeli'))
        {
            return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['nullable','string', 'email', 'max:255', 'unique:users'],
            'phone_number' => 'required|string|unique:users|max:255',
            'codemeli' => ['required', new Nationalcode],
            'courseName' => 'required|string|max:255',
            'password' => ['required', 'string', 'min:8', 'confirmed'],
            'g-recaptcha-response' => ['required' , new Recaptcha]
        ]);
        }

    }

registerForm

    public function registerform(Request $request)
    {
        $this->validate($request,[
        'codemeli' => ['required', new Nationalcode],
        'g-recaptcha-response' => ['required' , new Recaptcha]
       ]);
       $request->session()->flash('codemeli');
       return redirect(route('register'));
    }

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

Route::middleware(['auth.register'])->group(function(){
Auth::routes(['verify' => true]);
});

میدلور

    public function handle($request, Closure $next)
    {

      if ($request->session()->has('codemeli')) {
            return $next($request);

        } else {
            return redirect('/register');
        }

    }

اینم کرنل

        'auth.register' => \App\Http\Middleware\RegisterCod::class,
ثبت پرسش جدید

پاسخ‌ها

6
فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

سلام وقت بخیر ، این میدلور رو شما فقط بر روی یک روت باید ست کنی !! همون روتی که کاربر سرچ میکنه و صفحشو میاره.
میدلور هم باید به این صورت نوشته بشه

Route::post('/payment', [HomeController::class , 'payment'])->middleware('auth.register');
Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@eniack

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

Auth::routes(['verify' => true]);

جدا از اون روت بالا روت register تعریف کردم ولی نتیجه نگرفتم

در این صورت باید به جای روت بالا برای تک تک روت هایی که این روت ایجاد میکنه
Auth::routes(['verify' => true]);
خودم روت بنویسم ؟

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

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

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

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@eniack
تو کنترلر registerCod باید بزارم؟
تو register گذاشتم جواب نداد تو registeerCod هم جواب نداد
البته نمیدونم درست تعریفش کردم یا نه
میشه بگید چجوری باید تو کدوم کنترلر تعریفش کنم

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

شما یک روت get دارید به اسم register داخل این متد کد رو بنویس که اگر سشن ست شده بود بزار صفحه رو ببینه یعنی کد مثلا return view ('register') اجرا بشه اگر سشن ست نشده بود این کد اجرا بشه
return redirect('/register');

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

@eniack
به این شکل نوشتم تاثیری نداشت
نمیدونم درست یا غلط

    protected function validator(array $data , Request $request)
    {

        if($request->session()->has('codmeli'))
        {
            return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['nullable','string', 'email', 'max:255', 'unique:users'],
            'phone_number' => 'required|string|unique:users|max:255',
            'codemeli' => ['required', new Nationalcode],
            'courseName' => 'required|string|max:255',
            'password' => ['required', 'string', 'min:8', 'confirmed'],
            'g-recaptcha-response' => ['required' , new Recaptcha]
        ]);
           return redirect('/registerform');

        }

        else
        {
           return redirect('/register');
        }
    }

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

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