Я установил CakePHP 4.0.6 на своем Lubuntu. Использование локального сервера Apache. Установка прошла успешно. Я вижу страницу приветствия.
Затем я запустил Учебное пособие по CMS, создал таблицы в базе данных, а затем создал все с помощью bake ./cake bake all --everything
. Это тоже сработало, и я смог увидеть страницу /users/index
.
Затем, конечно, я попытался поиграть с cms, добавив пользователя, форма была показана, и я заполнил запрошенную информацию, но после отправки я получил эту ошибку: Отсутствует тело токена CSRF
Stacktrace:
[Cake \ Http \ Exception \ InvalidCsrfTokenException] Отсутствует тело токена CSRF в /home/david/Software/cakePhpTest/vendor/cakephp/cakephp/src/Http/Middleware/CsrfProtectionMiddleware/CsrfProtectionMiddleware.php в строке 25: Программное обеспечение / cakePhpTest / vendor / cakephp / cakephp / src / Http / Middleware / CsrfProtectionMiddleware.php: 133 - /home/david/Software/cakePhpTest/vendor/cakephp/cakephp/src/Http/Runner / home / david / Software / cakePhpTest / vendor / cakephp / cakephp / src / Http / Runner.php: 58 - /home/david/Software/cakePhpTest/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php home / david / Software / cakePhpTest / vendor / cakephp / cakephp / src / Http / Runner.php: 73 - /home/david/Software/cakePhpTest/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.AssetMiddleware. - /home/david/Software/cakePhpTest/vendor/cakephp/cakephp/src/Http/Runner.php:73 - /home/david/Software/cakePhpTest/vendor/cakephp/cakePhpTest/vendor/cakephp/cakephdlep/src/Errorpidware/Mroridware/ : 119 - / home / david / Software / cakePhpTest / vend или / cakephp / cakephp / src / Http / Runner.php: 73 - /home/david/Software/cakePhpTest/vendor/cakephp/debug_kit/src/Middleware/DebugKitMiddleware.php:60 - / home / david / Software / cake vendor / cakephp / cakephp / src / Http / Runner.php: 73 - /home/david/Software/cakePhpTest/vendor/cakephp/cakephp/src/Http/Runner.php:58 - / home / david / Software / cakePhpTest / vendor / cakephp / cakephp / src / Http / Server.php: 90 - /home/david/Software/cakePhpTest/webroot/index.php:40 URL-адрес запроса: / users / add Referer URL: http://localhost:8765/users/add IP-адрес клиента: 127.0.0.1
Что меня действительно озадачивает, так это то, что согласно Документация CakePHP необходимо включить защиту от подделки межсайтовых запросов в src/Application.php
, чего нет в только что установленном проекте. Я проверил.
Так как же то, что не включено, может вызвать ошибку?
Чтобы увидеть, что произойдет, если я включу его, я скопировал код из документации:
use Cake\Http\Middleware\CsrfProtectionMiddleware;
...
$options = [
// ...
];
$csrf = new CsrfProtectionMiddleware($options);
к src/Application.php
. Это привело к той же ошибке.