我正在尝试使用curl post方法提交表单。我已将csrf令牌正确设置为表单。
<form action="{{URL::route('the-route')}}" method="post"><input name="_token" type="hidden" value="{{csrf_token()}}">
但它在TokenMismatchException
中显示VerifyCsrfToken.php line 46:
。我使用共享主机卡住它,我在myapp
文件夹中包含我的larvel 5项目,在{laravel public
文件夹中包含public_html
文件夹1}}
作为测试,我也尝试过其他一些帖子建议发表评论
App\Http\Middleware\VerifyCsrfToken
,app/Http/kernal.php
看看会发生什么。每次提交表单后,我都会收到一条消息,说明重定向到:/auth/login
或/auth/register
,具体取决于我来自哪里,但没有成功。
答案 0 :(得分:0)
我找到了最适合我的解决方案。你需要做的是:
转到 - &gt; app - &gt;例外 - &gt; Handler.php 强>
并将其复制并粘贴到渲染方法中:
public function render($request, Exception $e)
{
if ($e instanceof TokenMismatchException) {
Auth::logout();
return redirect('login')->withErrors('Sorry, your session has expired. Please login again.');
}
return parent::render($request, $e);
}
这将为您处理TokenMismatchException并在页面上显示友好消息:)。希望它可以帮助那里的任何人!
答案 1 :(得分:-1)
I just got it working removing the line:
'Illuminate\Foundation\Http\Middleware\VerifyCsrfToken'
from /app/Http/Resquests/Kernel.php
感谢@Mahmoud Nassar
答案 2 :(得分:-1)
我解决了我的问题:
在我的情况下,我从'Illuminate\Foundation\Http\Middleware\VerifyCsrfToken'
移除app/Http/kernal.php
,但它不起作用,但这是TokenMismatchException in VerifyCsrfToken.php line 46
的最佳解决方案
我在共享主机中托管laravel 5,作为测试,我也试过,因为其他一些帖子建议注释掉更改我的文件夹结构在外部public_html
创建一个文件夹并在该文件夹中添加文件然后放{{ 1}} public(laravel)
中的文件夹每次提交表单后我都会收到一条消息,说明重定向到:/ auth / login或/ auth / register取决于我来自哪里但没有成功。
所以我删除所有文件和文件夹包括我的应用程序和laravel
最后我在public_html
中创建laravel 5并在.htaccess中添加以下代码(如果不存在,则在laravel根目录中创建.htaccess)
public_html
此.htaccess可帮助您从网址中移除 RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]