Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Написал сайт. Нужно было протестировать его работу и проверить работу с почтой.
На хостинг залил, дизаин прогрузился. Пытаюсь авторизоваться и вылетает ошибка:
TokenMismatchException in VerifyCsrfToken.php line 67:
Пытался прописать всякое разное:
{!! csrf_field() !!}
<input type="hidden" name="_token" value="<?php echo csrf_token() ?>">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
Ничего не работает. Проблемы те же. Права на папки везде 777 временно для проверки.
Почему сайт не видит токен? Или у laravel защитная реакция против хостингов такая?
Не в сети
мало данных.
какая версия фреймворка? И нужно видеть роуты.
Не в сети
мало данных.
какая версия фреймворка? И нужно видеть роуты.
Зачем роуты? Не пойму.
На локалке работает все нормально под разными ОС. И все окей.
На хостинге такая вот лабуда.
Но тем не менее вот роуты.
<?php
/*
|--------------------------------------------------------------------------
| Routes File
|--------------------------------------------------------------------------
|
| Here is where you will register all of the routes in an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| This route group applies the "web" middleware group to every route
| it contains. The "web" middleware group is defined in your HTTP
| kernel and includes session state, CSRF protection, and more.
|
*/
/** Интернет магазин **/
Route::group(['middleware' => 'web'], function () {
Route::auth(); // Авторизация на сайте
Route::get('/', 'HomeController@index'); // Главна страница
Route::get('/preview/{id}', 'HomeController@preview'); // Подробный просмотр товара
Route::post('/star', 'HomeController@setStar'); // Звездный рейтинг
Route::match(array('POST'), '/preview/{id?}', ['uses' => 'HomeController@add_comment']); // Добавление комментария
Route::match(array('GET', 'POST'), '/account', ['middleware' => 'auth', 'uses' => 'UserController@index']); // Личный кабинет
Route::match(array('GET', 'POST'), '/feedback', ['uses' => 'HomeController@Feedback']); // Обратная связь
});
/** Панель администрирования **/
Route::group(['middleware' => ['web', 'auth', 'acl']], function () {
Route::get('/admin', ['uses' => 'AdminController@viewStats']); // Полный список товаров
/* Управление товарами */
Route::get('/admin/items', ['uses' => 'AdminController@viewItems']); // Полный список товаров
Route::match(array('GET', 'POST'), '/admin/new_item', ['uses' => 'AdminController@setItems']); // Рагистрация нового товара
Route::match(array('GET', 'POST'), '/admin/item/{id}', ['uses' => 'AdminController@viewItem']); // Подробный просмотр товара и модификация
Route::get('/admin/delete_item/{id}', ['uses' => 'AdminController@deleteItem']); // Удаление товара по его идентификатору
/* Управление категориями */
Route::get('/admin/categories', ['uses' => 'AdminController@viewCategories']); // Список категорий
Route::match(array('GET', 'POST'), '/admin/add_category', ['uses' => 'AdminController@setCategory']); // Регистрация новой категории
Route::match(array('GET', 'POST'), '/admin/category/{id}', ['uses' => 'AdminController@viewCategory']); // Подробный просмотр категории и модификация
/* Управление типом валют */
Route::get('/admin/currencies', ['uses' => 'AdminController@viewCurrencies']); // Список валют
Route::match(array('GET', 'POST'), '/admin/add_currency', ['uses' => 'AdminController@setCurrency']); // Регистрация новой валюты
Route::match(array('GET', 'POST'), '/admin/currency/{id}', ['uses' => 'AdminController@viewCurrency']); // Подробный просмотр категории и модификация
/* Управление комментариями */
Route::get('/admin/commentaries', ['uses' => 'AdminController@viewCommentaries']); // Список комментариев
Route::get('/admin/comment/{id}/{data_id}', 'AdminController@viewComment'); // Модерация комментария
Route::match(array('POST'), '/admin/comment/{id?}/{data_id?}', ['uses' => 'AdminController@saveComment']); // Сохранение отмодерированного комментария
});
Версия laravel: Laravel Framework version 5.2.25
Не в сети
Попробуйте убрать web middleware, начиная вроде как раз с версии 5.2.25 он автоматически подсоединяется ко всем routes. Видимо на локахосте у вас более старая версия, поэтому там все работает.
Не в сети
Попробуйте убрать web middleware, начиная вроде как раз с версии 5.2.25 он автоматически подсоединяется ко всем routes. Видимо на локахосте у вас более старая версия, поэтому там все работает.
Убрал. Теперь ошибка:
Undefined variable: errors (View: /var/www/корень/data/www/мой_домен.ru/resources/views/auth/login.blade.php)
Я так понимаю вывод ошибок у меня теперь не работает, так как убрал middleware web. В связи с чем появилась новая ошибка.
Нет это не вариант решения проблемы. К тому же я ни где не видел информацию где в этой версии laravel что то меняли с middlewarwe web.
Нет, на локалке у меня именно та же версия.
Ошибка актуальная. И до сих пор я не пойму причину.
Не в сети
В login.blade условие на вывод ошибок допишите . if($errors)
В login.blade условие на вывод ошибок допишите . if($errors)
Теперь получаем такую ошибку:
Session store not set on request. (View: /var/www/корень/data/www/мой_домен.ru/resources/views/auth/login.blade.php)
Залезаю я значит в kernel.php и вижу следующее:
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
А именно вот на эту строку:
\Illuminate\Session\Middleware\StartSession::class,
Обновил Laravel до версии: Laravel Framework version 5.2.29
Все осталось так же как и было.
Из следующей строки в kernel.php и имеющейся ошибке я понимаю что middleware web не могли встроить в роутер по умолчанию.:
\Illuminate\Session\Middleware\StartSession::class,
Следственно ошибка остается и можно вернуться к первоначальному роутеру.
Не в сети
Еще вылетает такая ошибка при попытке отправить электронное письмо на почту:
getmypid() has been disabled for security reasons
Я не совсем понял вообще причину этой ошибки.
В общем это у меня хостинг косячный или так будет везде на всех хостингах?
P.S хостинг платный.
Не в сети
web мидельварю можно и не убирать, а исключить роуты которым не нужна защита
Вот в документации https://laravel.com/docs/5.2/routing#csrf-protection чуть ниже раздел "Excluding URIs From CSRF Protection"
Не в сети
web мидельварю можно и не убирать, а исключить роуты которым не нужна защита
Вот в документации https://laravel.com/docs/5.2/routing#csrf-protection чуть ниже раздел "Excluding URIs From CSRF Protection"
Я знаю зачем он нужен. И все как есть на данный момент так и должно быть. И исключение web middleware из проекта это не решение проблемы и ошибки
Не в сети
Страницы 1