gpt4 book ai didi

php - 为什么如果我不在表单末尾放置 {{csrf_field()}} (在 Laravel 5 View 中),我会收到 TokenMismatchException?

转载 作者:行者123 更新时间:2023-12-03 02:40:22 25 4
gpt4 key购买 nike

我对 PHP 还很陌生和Laravel我对 {{csrf_field()}} 有以下疑问 符号插入 <form> .

进入 View 我有以下形式:

<form method="post" action="/registration">

<div class="form-group">
<label>Nome</label>
<div class="input-group">
<div class="input-group-addon"><i class="fa fa-user"></i></div>
<input type="text" name="name" class="form-control" placeholder="Inserisci il tuo nome">
</div>
</div>

<div class="form-group">
<label>Cognome</label>
<div class="input-group">
<div class="input-group-addon"><i class="fa fa-user"></i></div>
<input type="text" name="surname" class="form-control" placeholder="Inserisci il tuo cognome">
</div>
</div>

<!-- Some other fields -->

{{csrf_field()}}

<button type="submit" class="btn btn-default">Submit</button>

</form>

这是由这个简约的 Controller 方法处理的:

public function store(Request $request)
{
return $request->all();
}

所以如果我输入 {{csrf_field()}} 在提交按钮之前的“声明”,它工作正常,并且 Controller 方法可以正确处理请求,但是如果我删除此行,它就无法工作,并且我获得 TokenMismatchException

为什么会这样以及究竟代表什么 {{csrf_field()}} 为什么我要在表单中使用它?

最佳答案

CSRF 代表跨站请求伪造

在这种情况下,Laravel 要求将此字段与请求一起发送,以便在发回时验证该请求不是伪造的。

可以在这里找到一个很好的解释:https://stackoverflow.com/a/33829607/1068537

关于php - 为什么如果我不在表单末尾放置 {{csrf_field()}} (在 Laravel 5 View 中),我会收到 TokenMismatchException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42363757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com