Срок действия страницы истек из-за неактивности. Пожалуйста, обновите и повторите попытку

Я использую laravel 5.5, когда когда-либо отправляю данные в почтовом запросе на свой контроллер. Он всегда показывает следующее сообщение Срок действия страницы истек из-за бездействия.

Пожалуйста, обновите и повторите попытку. мой код просмотра:

@extends('layouts.app')
@section('content')


    <!DOCTYPE html>
    <html>
    <head>
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <title></title>
    </head>
    <body>
    <div class="span3 well">
          <legend>Create Your New Task!</legend>
          <div class="form-group">
            <div class="col-md-4">  
             <form accept-charset="UTF-8" action="/add-task" class="form-horizontal" method="post">
            <input class="form-control"   name="name" placeholder="Task Name" type="text"> 
            <input class="form-control"  name="assignedto" placeholder="Assigned To" type="text">
            <input class="form-control"  name="deadline" placeholder="DeadLine" type="text"> 
            <button class="btn btn-warning" type="submit">Add Task</button>
            {{csrf_field()}}
        </form>
        </div>
    </div>
    </div>
    </body>

    </html>

    @endsection()

и мой контроллер:

<?php

    namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;
    use App\task;

    class AddTask extends Controller
    {
        public function insertTask(Request $req)
        {
            $name=new task();
            $name->name=$req['name'];
            $name->assigned_to=$req['assignedto'];
            $name->deadline=$req['deadline'];

            $name->save();

        }
    }

я не знаю, какое решение


person Mohammad Arshad    schedule 20.09.2017    source источник
comment
Будет ли это возможным решением, если вы используете заголовок для автоперезагрузки через несколько секунд? ` например: ‹meta http-equiv=refresh content=5 ›` Вы также можете обновить страницу с помощью JS location.reload(); Из коробки я не могу сказать вам, почему вы получаете эту ошибку, но возможно, что токен csrf достиг конца своего жизненный цикл. Каждый сгенерированный токен действителен в течение короткого времени. В вашем проекте laravel должна быть настройка, в которой вы можете увеличить время жизни токена csrf по умолчанию.   -  person Spears    schedule 20.09.2017
comment
возможный дубликат stackoverflow.com/questions/46141705/   -  person Basheer Kharoti    schedule 20.09.2017


Ответы (4)


У меня была та же проблема с использованием localhost:8000 Попробуйте выполнить следующие шаги
1. Попробуйте в чистом браузере. Похоже, проблема связана с файлами cookie от разработки с предыдущими версиями Laravel по тому же URL-адресу.
2.Попробуйте добавить {{ csrf_field() }} под открывающим тегом формы.

<form action="/add-task" method="POST">
  {{ csrf_field() }}

3.и удалите accept-charset="UTF-8"

дальнейшее чтение 1 и Similar Post2
дополнительная ссылка об ошибках laravel 5.5 Larave 5.5: представления ошибок по умолчанию и их оптимизация

person Anas Ummalil    schedule 20.09.2017

Обратите внимание на параметр php.ini mbstring.func_overload.

Он должен быть установлен на 0, а mbstring.internal_encoding — на UTF-8. В моем случае это было проблемой.

person andrew_jackson    schedule 13.05.2018

Пришлось поставить <input type="hidden" name="_token" value="{{ csrf_token() }}"> или использовать @csrf в Laravel 5.6 внутри формы. {{csrf_token()}} иначе будет напечатано на html-странице

person Augustas    schedule 18.06.2018

была та же проблема, но папка /storage/framework/sessions отсутствовала. Создал папку и исправил ее после обновления.

person langueh    schedule 05.10.2017