ネビ活 | ネットビジネス生活

ネットxお金のスキルを作り、未来永劫豊かに暮らす事を目指すサイト

419 Page Expired とLaravelでフォーム送信時に出た時の対処法

更新日:

Laravelでブレードにフォームを作成し、いざ送信ボタンを押したら、

419 Page Expired と出ませんでしたか?

 

原因は

 

  • フォームに @csrf を入れ忘れている
  • 画像送信フォームにenctype="multipart/form-data"が入ってない
  • requestのauthorizeがfalseになっている
  • キャッシュが邪魔をしている

のどれかの可能性が高いです。

 

Laravelって稼げるの?独学?スクール?高給を稼ぐためにどうするべきか教えます。

419 Page Expiredの原因1:@csrfを入れ忘れている

Laravel(5.6以降、6、7、8など)では、フォームをブレード上に作成した場合、必ず、

この画像のように、<form>~</form>の間に@csrfと記述する必要があります。

 

もし、Laravel5.5かそれ以前の場合は、

{{ csrf_field() }}

と代わりに書く必要があります。

 

これは、Cross Site Request Forgery(クロスサイトリクエストフォージェリ)という不正なフォーム送信(なりすまし送信、ハッキング)を防ぐためのタグです。

 

これを付け忘れてると、419 Page Expired になります。

419 Page Expiredの原因2:ファイル送信フォームにenctype="multipart/form-data"が入ってない

もしくは、もしあなたのフォームに画像や音声などのファイルをアップロードするボタンが付いてる場合は、<form>にenctype="multipart/form-data"という記述がないと、419 Page Expiredと出てアップロードできないようになってます。

図のように、<form>タグ内に、enctype="multipart/form-data"と足す事で、419 Page Expiredと出ずにファイルアップロードができるようになるはずです。

 

419 Page Expiredの原因3:Requestのauthorizeがfalseになっている

さらにもしあなたが、バリデーションを使ってる場合は、バリデーションが書かれているRequest.phpが原因かもしれません。

例えば、下図のように、コントローラーにContactRequestというバリデーションファイルを使ってる場合は、

app\Http\RequestsフォルダのContactRequest.phpを開きます。

開くと、public funciton authorize()というメソッドがあり、

もしそこがreturn falseになってる場合は、419 Page Expiredに必ずなります。
なぜなら、falseという事はフォーム自体が送れないようになってるからです。

なので、return false; を return true; に書き換えて、上書き保存する事で、419 Page Expiredが出なくなるはずです。

 

バリデーションについてはこの記事で詳しく解説してるよ↓

Laravel6チュートリアル:バリデーション(入力禁止文字)をフォームに実装しよう!

 

419 Page Expiredの原因4:キャッシュが邪魔をしている

全部直したのに、419 Page Expired が直らないんだけど(泣)

まず、文字や@が日本語入力の全角英語になってしまってないかチェックして。

 

もしくは、キャッシュが残ってしまってる可能性があるから、
そんな時はコマンドプロンプト(Shell/ターミナル)を開いて、
cdでLaravelプロジェクトフォルダに移動した後、

php artisan config:cacheと入力、Enterして、
ブラウザをCtrl + F5で更新して試してみて。

 

それでダメなら、

php artisan route:clear

php artisan view:clear

composer dump-autoload -o

などを同じように試してみるのもあり。

そして、ブラウザをctrl+F5で更新すると直ったりするよ。

Neby

 

ところで、あなたがLaravelを学んでる理由はなんですか?

稼げると聞いたから?

 

どれくらい上達すれば稼げるのか?本当にそんな高給を稼げるのかの現実を知ってますか?

詳しくは下の記事に本音の裏事情を書いてるので参考にしてくださいね。

Laravelって稼げるの?独学?スクール?高給を稼ぐためにどうするべきか教えます。

  • この記事を書いた人

Neby

本を毎日多読しつつ、資産運用、プログラミング、心理学、ネットビジネススキルを猛向上中。貧富の差が広がる5年後、10年後に安心生活を送るためのお金のリテラシー、スキル、資産を一緒に作っていきましょう。

-PHP Laravel入門

Copyright© ネビ活 | ネットビジネス生活 , 2020 All Rights Reserved.