php - Laravel 提交表单时页面已过期

标签 php laravel laravel-5 csrf

所以我有一个非常基本的 Controller 位于:app/Http/Controllers/RentalRequestController

namespace App\Http\Controllers;
use Illuminate\Routing\Controller as BaseController;


class RentalRequestController extends BaseController
{
    public function store(Request $request, $obj)
    {
        $g = 0;
        return view("success");
    }
}

然后在我的 web.php 中我有以下内容:

Route::Post('/', 'RentalRequestController@store');

然后我认为有以下形式:

<form id="rentalForm" name="rentalForm" role="form" action="/"  method="post">
<!-- Row -->
<div class="f-row">
    <div class="form-group one-fourth">
        <label for="address">Gade</label>
        <input type="text" name="address" id="address"
               data-parsley-required-message="Indtast venligst din gade" required
               data-parsley-errors-container="#errAddress"/>
        <div class="full-width">
            <label id="errAddress"></label>
        </div>
    </div>
    <div class="form-group one-fourth">
        <label for="number">Husnummer</label>
        <input type="number" name="number" id="number"
               data-parsley-required-message="Indtast venligst dit husnummer" required=""
               data-parsley-errors-container="#errNumber">
        <div class="full-width" style="">
            <label id="errNumber"></label>
        </div>
    </div>
    <div class="form-group one-fourth">
        <label for="zip">Postnr</label>
        <input type="text" name="zip" id="zip" required=""
               data-parsley-required-message="Indtast venligst dit postnr"
               data-parsley-length-message="Indtast et dansk postnr"
               data-parsley-length="[4,4]" data-parsley-zip="dk"
               data-parsley-errors-container="#errZip">
        <div class="full-width" style="">
            <label id="errZip"></label>
        </div>
    </div>
    <div class="form-group one-fourth">
        <label for="city">By</label>
        <input type="text" name="city" id="city" required=""
               data-parsley-required-message="Indtast venligst din by"
               data-parsley-errors-container="#errCity">
        <div class="full-width" style="">
            <label id="errCity"></label>
        </div>
    </div>
</div>

<!-- //Row -->

<!-- Row -->
<div class="f-row">
</div>
<!-- //Row -->
<div class="f-row">
    <div class="form-group one-fourth">
        <label for="kvm">kvadratmeter</label>
        <input type="number" id="kvm" min="1" class="uniform-input number" name="kvm" required=""
               data-parsley-required-message="Indtast venligst arealet på din bolig"
               data-parsley-errors-container="#errKvm">
        <div class="full-width" style="">
            <label id="errKvm"></label>
        </div>
    </div>

    <div class="form-group one-fourth">
        <label for="price">Nuværende husleje</label>
        <input type="number" id="price" name="price" step="0.01" required=""
               data-parsley-required-message="Indtast venligst din nuværende husleje"
               data-parsley-errors-container="#errPrice">
        <div class="full-width" style="">
            <label id="errPrice"></label>
        </div>
    </div>
    <div class="form-group select one-fourth">
        <label for="concatSelector">Vælg kontakt form</label>
        <div class="selector">
            <select id="concatSelector" required="" data-parsley-required-message="Indtast venligst din nuværende husleje">
                <option selected="">Vælg kontakt form</option>
                <option value="cell">Telefon</option>
                <option value="mail">E-mail</option>
            </select>
        </div>
    </div>
    <div class="form-group one-fourth fadeIn" id="selectEmail">
        <label for="email">Kontakt information</label>
        <input type="email" id="email" name="email" placeholder="E-mail" required=""
               data-parsley-type="email"
               data-parsley-type-message="Indtast venligst en gyldig e-mail"
               data-parsley-required-message="Indtast venligst en gyldig e-mail"
               data-parsley-errors-container="#errEmail"
        >
        <div class="full-width" style="">
            <label id="errEmail"></label>
        </div>
    </div>
    <div class="form-group one-fourth fadeIn" id="selectCell">
        <label for="mobile">Kontakt information</label>
        <input type="number" id="mobile" name="phone" placeholder="Telefon" required=""
               data-parsley-required-message="Indtast venligst et gyldig telefon nr."
               data-parsley-errors-container="#errCell"
        >
        <div class="full-width" style="">
            <label id="errCell"></label>
        </div>
    </div>

</div>
<div class="f-row">

    <div class="form-group right one-fourth" style="margin-top: 35px">
        <button type="button" onclick="sendInformation()" class="btn large black">Kan jeg spare penge?
        </button>
    </div>
</div>

现在,当我提交表单时,它会将我重定向到一个页面:

The page has expired due to inactivity. 

Please refresh and try again.

谁能告诉我我做错了什么?

最佳答案

您应该添加:

{{ csrf_field() }}

里面<form>元素例如像这样:

<form id="rentalForm" name="rentalForm" role="form" action="/"  method="post">

{{ csrf_field() }}

这称为CSRF protection

关于php - Laravel 提交表单时页面已过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47991598/

相关文章:

php - 一个包含许多基于链接的数据库的 laravel 文件夹

php - 如何将旧的 MySQL 数据库迁移到 Laravel 项目中?

php - mysql 中的 NULL 或 'string' 在 php 中插入查询字符串

php - Laravel,将数据从数组保存到数据库

javascript - 在 Vue js 的 app.js 中 window.app=new Vue({}) 而不是 const app = new Vue({}) 有什么区别?

laravel - Scrutinizer Laravel 5.2 无法分析

laravel-5 - 如何在 Laravel Blade 中定义一个变量

php - Laravel 5.0 模型未找到异常

php - 自动生成 mysqli_fetch_array 列结果

php - 为什么文本被Mysql忽略了?