اذهب إلى المحتوى
  • 0

ظهور الخطأ Page Expired 419 في لارافل

Amir Alsaeed

السؤال

Recommended Posts

  • 0

لا علاقة لهذا الخطأ بمتغيرات البيئة , يحدث هذا عادة بسبب نسيان تمرير csrf ضمن طلبات الـ POST .

يمكنك تمرير المتغير عن طريق إضافة الحقل ضمن نموذج المدخلات على هذا النحو : 

<form action="path/to/action" method="POST">
@csrf 
  
</form>

أو :

<form action="path/to/action" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
  
</form>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

السلام عليكم أخي الكريم .. تلك المشكلة سببها أن ال csrf token قد إنتهت المدة الخاصة بها ولحل تلك المشكلة لديك طريقتين هو أن تقوم بالضغط على الرابط من البراوزر مجدداً لكي تقوم الصفحة بالعمل من جديد ويقوم فريم ورك لارافيل بعمل csrf token صالحة من جديد 

والطريقة الثانية هي الأفضل لأنه ربما يحدث هذا الخطأ أيضاً مع المستخدم فلذلك يجب علينا حل تلك المشكلة 

use Illuminate\Session\TokenMismatchException;

/**
  * Render an exception into an HTTP response.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Throwable  $exception
  * @return \Symfony\Component\HttpFoundation\Response
  *
  * @throws \Throwable
*/
public function render($request, Throwable $exception)
{
  if ($exception instanceof TokenMismatchException){
  	return redirect()->back();    
  }

  return parent::render($request, $exception);
}

يوجد ملف بإسم Handler.php داخل مسار App/Exceptions

وهذا الملف الذي يقوم لارافيل فيه بالتحكم فى أنواع ال Exceptions المختلفة عن طريق فانكشن render

حيث بداخل تلك الداله نقوم بوضع شرط إذا كان هذا ال Exception من نوع TokenMismatchException يقوم بعمل ريدايركت مرة أخرى للمستخدم حتى لايظهر ذلك الأيرور 419 Token MisMatch

أخيراً نضع هذا الكود فى أي فورم من نوع Post أو Put أو Patch أو Delete 

<form action="" method="POST">
	<input type="hidden" name="_token" value="{{ csrf_token() }}" />
</form>

 

تم التعديل في بواسطة يوسف احمد9
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

كما قال الزملاء، الخطأ بسبب csrf token وعمليات الحماية، لكن بعد تعديل أي قيمة في إعدادات لارافل ينبغي مسح الكاش و ضبط الإعدادات من جديد بتنفيذ الأوامر:

php artisan view:clear
php artisan route:clear
php artisan cache:clear
php artisan config:cache

ليتم الأخذ بالتعديلات في عملية تشغيل المخدم الجديدة/التالية

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...