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

ریدایرکت مسیر ثبت نام

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

این قسمت اومدم از سشن استفاده کنم ولی موفق نشدم
لطفا راهنمایی کنید
چیکار کنم قبل از اینکه اعتبار سنجی انجام نشد روت register نمایش نده

   public function registerform(Request $request)
    {
        $validData = $request->validate([

        'codemeli' => ['required', new Nationalcode],
        'g-recaptcha-response' => ['required' , new Recaptcha]

     ]);

        if($validData){

             return redirect(route('register'));
        }
        else
        {
            return redirect('registerform');
        }

    }

ثبت پرسش جدید
سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

سلام شما می توانید یک میدلویر ایجاد کنید بعد چک کنید ( یا در سشن ها یا به صورت درخواست post ) بعد با توجه به وجود داشتن یا نداشتن ان ریدایرکت کنید.
@wxyz


Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش آپدیت شد
0

@websaz
متاسفانه موفق نشدم

دوستان لطفا اگه میتونید کمک کنید
تو کنترلر نمیدونم چی بنویسم اگه کاربر رجیستر زد مستقیم وارد روت رجیستر نشه و ریدایرکت بشه به رجیستر فرم


[N] ONE
تخصص : هرچی باشه
@none 3 سال پیش مطرح شد
0

از یک middleware پیش از register استفاده کنید و یک token برای احراز هویت با کد ملی بسازید و برای مدتی در سشن یا دیتابیس و کوکی ها ذخیره کنید و هنگام ثبت نام ازش استفاده کنید!
البته میتونید در مراحل ثبت نام قسمت تایید کدملی رو قرار بدید که در یک route و controller باشه و این مشکل پیش نیاد
ولی نیاز به یکم مهارت تو بخش فرانت داره
امیدوارم متوجه شده باشید!


Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش مطرح شد
0

@none
برای مبحث دوم فرمودید تو یک روت باشه
ابتدا میخواستم به همین صورت انجام بدم
ولی نمیدونستم چیکار کنم
نیاز به جاوااسکریپ داره درسته؟ که ابتدا فرم اول نمایش بده و بد فرم دوم

مورد اول هم میدلور نمیدونم به چه صورت بنویسم


[N] ONE
تخصص : هرچی باشه
@none 3 سال پیش آپدیت شد
0

با استفاده از ajax پیاده سازی کنید
ابتدا فرم اول رو نشون بده و بعد از اینکه فرم اول تایید شد فرم دوم نماش داده بشه و برای امنیت و اعتبار سنجی فرم دوم در بخش فرم اول باز token ی ایجاد کنید که در فرم دوم استفاده کنید تا نشه دورش زد!
برای ساخت این فرم سه راه دارید

  1. هر دو فرم رو کدش رو توی یک صفحه html بزنید و بعد به کاربر به ترتیب نمایش بدید (Ajax)
    2.هر فرم رو در 2 view جداگانه بسازید و در view مربوط به کد ملی یک token در کوکی ها ثبت کنید و تایین کنید که اگه کاربر اون token رو داشت view مربوط به بخش ثبت نام نمایش داده بشه
    3.در این مورد میتونید با استفاده از ajax هنگامی که فرم اول تایید شده فرم دوم رو به صفحه ارسال کنید تا به کاربرنمایش داده بشه!

Paradox
تخصص : در حال یادگیری
@paradox 3 سال پیش مطرح شد
0

@none
ajax کار نکردم نمیتونم پیاده سازی کنم در حال حاظر
ممنون از توضیحاتتون

همون روش اول میخام انجام بدم
من تو کنترلر به این شکل نوشتم و چند شکل دیگه نوشتم که اشتباه هست

             $request->session()->flash('register' , [
                'registerform' => $request->has('registerform')
                ]);
                return redirect(route('registerform'));

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

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