Всем привет!
Друзья, прошу помощи...
Пар недель изучаю Laravel, установил 5.6, понемногу тестю роутеры, контроллеры, мидлеры, провайдеры)) Дела медленно, но продвигались - сам не торопился, чтобы вникнуть в саму структуру фреймворка. И вот сегодня, практически на ровном месте (в папке движка не ковырялся, глобальных настроек не менял никаких) начались проблемы: при отправке post-запроса с формы вылезает страница "The page has expired due to inactivity. Please refresh and try again", при попытке аутентификации через стандартно установленный Auth выдает то же самое, залогиниться никак не получается. Хотя до последнего момента всё было прекрасно - я не раз отправлял с формы данные, они прекрасно валидировались, выводились через dump(), Без проблем проходил аутентификацию, авторизовывался в закрытом разделе, короче, всё как в оф.мануале. И вот на тебе...
Я поначалу даже на сборку сервера начал грешить (у меня на винде openServer), перенес проект на шаред хостинг, результат ровно тот же.
Заметил, что сервер не сохраняет сессии. То есть, выполняя в контроллере такой код:
session(['key' => 'value']);
$request->session()->push('key2', 'value2');
dump(Session::all());
данные сессии выводятся, но при следующей перезагрузке страницы не добавляются. Если закомментировать первые две строки, то после очередной перезагрузки переменные key и key2 пропадают. И токен каждый раз новый выдает. Вот страница, где это видно:
клик . Все файлы конфигов проверил-перепроверил на всякий случай, атрибуты на папку storage/ выставлены 777. Есесно, конструкция "@csrf" присутствует там, где должна - раньше ведь работало всё без проблем
Для примера код web.php:<?php
Route::get('/', function () {
return view('welcome');
});
Route::get('/about',['uses'=>'Admin\AboutController@show','as'=>'about']);
Route::get('/articles',['uses'=>'Admin\Core@getArticles','as'=>'articles']);
Route::get('/article/{id}',['uses'=>'Admin\Core@getArticle','as'=>'article']);
Route::get('/contact',['middleware' => ['web'],'uses'=>'Admin\ContactController@show','as'=>'contact']);
Route::post('/contact',['middleware' => ['web'],'uses'=>'Admin\ContactController@store','as'=>'contactP']);
Route::get('/home', ['middleware' => 'auth','uses' =>'HomeController@index', 'as' => 'home']);
//Route::group(['middleware' => 'web'], function () {
//Auth::routes();
//});
Route::group(['prefix' => 'admin', 'middleware' => ['web','auth']], function () {
Auth::routes();
Route::get('/', ['uses' => 'Admin\AdminController@show', 'as' => 'admin_index']);
Route::get('/add/post',['uses'=>'Admin\AdminPostController@show','as'=>'admin_add_post']);
Route::post('/add/post',['uses'=>'Admin\AdminPostController@create','as'=>'admin_add_post_p']);
Route::get('/update/post/{id}',['uses'=>'Admin\AdminUpdatePostController@show','as'=>'admin_add_post']);
Route::post('/update/post',['uses'=>'Admin\AdminUpdatePostController@create','as'=>'admin_update_post_p']);
});
Route::group(['middleware' => ['web']], function () {
Route::get('/login', ['uses' => 'Auth\MyAuthController@showLogin', 'as' => 'login']);
Route::post('/login', ['uses' => 'Auth\MyAuthController@authenticate', 'as' => 'login_post']);
});
Контроллер Admin\ContactController :<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Session;
class ContactController extends Controller
{
public function store(Request $request, $id=FALSE) {
return redirect()->route('contact');
}
public function show(Request $request) {
session(['key' => 'value']);
$request->session()->push('teams', 'developers');
dump(Session::all());
return view('default.contact',['title'=>'Contacts']);
}
}
Код файла contact.blade.php:@extends('default.layouts.layout')
@section('content')
<div class="col-md-9">
<div class="">
<h2>Contact us!</h2>
</div>
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<p>
This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.
</p>
<form method="post" action="{{ route('contact') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" name="name" value="{{ old('name') }}" placeholder="Jane Doe">
</div>
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" id="email" value="{{ old('email') }}" name="email" placeholder="Email">
</div>
<div class="form-group">
<label for="site">Site</label>
<input type="text" class="form-control" id="site" value="{{ old('site') }}" name="site" placeholder="Site">
</div>
<div class="form-group">
<label for="text">Text</label>
<textarea class="form-control" id="text" name="text" rows="3">{{ old('text') }}</textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
@endsection
Помогите, пожалуйста, советом - что за оказия могла произойти? С пяти часов рою землю носом(((
Могу скинуть доступ по ФТП...