下記記事で構築した Docker コンテナを使用して、PHP のサンプルプログラムを作成しようとしたところ、セッション情報が取得できなくて非常に悩みました。 www.aruse.net こんな簡単なプログラムで、 PHP のセッション情報が参照できなかったです。 login.php <?php session_start(); $_SESSION['token'] = 1; header("Content-type: text/html; charset=utf-8"); ?> <!DOCTYPE html> <html lang="ja"> <body> <h1>ログイン</h1> <form action="login_check.php" method="post"> <table border="0"> <tr> <td>メールアドレス:</td> <td><input type=
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
Session(セッション)やCookie(クッキー)という単語は嫌というほど聞いているにも関わらず認証やフォームでLaravelがうまく制御してくれているので詳細を理解せずに利用している人またはSessionやCookieの仕組みはなんとなく理解できているけど実際にどのような情報をやり取りしているのかわからないという人を対象に”Laravel”でのSessionとCookieについて説明を行っています。 Sessionはサーバ(Laravel)側、Cookieはクライアント(ブラウザ)側で管理を行いデフォルトではサーバ側のSession情報はファイルの中に保存されます。ファイル以外にもSessionを保存する方法は複数あるので今回はテーブルを使って確認していきます。テーブルを利用するのはSession情報の管理は1つの方法でなく複数存在し、他の管理方法を知ることでSessionの理解を深
xxxx.net と api.xxxx.net の間でアカウント認証を行い、セッションIDをクッキーで書き込んでもらう際にハマった話。 xxxx.net のログインページのフォームにアカウント名とパスワードを入力し、api.xxxx.net のWebAPIにAjaxを使用して送信する。 HKUser.signin = function(form, callback) { var postdata = form.serialize(); $.ajax({ type:"POST", async:true, dataType:"json", cache:false, url:"https://api.xxxx.net/1/user/signin", data:postdata, success:function(data) { ..... }, error:function(error) { .
CSRF TOKENと関わりの深い話題だと思うので[こちら]もどうぞ。 「せや!セッション持続時間を永続化したろ!」「expire_on_close = true!これで放置しても大丈夫やで!」 〜約2時間後〜 SE「消えたンゴ」PG「ワイは消えてない・・・なぜなのか」 という状況の解決策をシェアしたいと思います。 解決策:lifetimeを長めに取ってみて下さい。gc(ガベージコレクション)がセッションデータを削除しているかもしれません。expire_on_closeがtrueならlifetimeは無視されると思いきや・・・ 実はガベージコレクションの判定では使用されています。 LaravelもネイティブPHPも、セッションデータを失う条件は 1.cookieが削除された2.セッション自体の有効期限が切れた3.gcが発動した の3通りが主で、Laravelの場合1と2はexpire_on
はじめに Laravelを触り始めた時、簡単なCRUD機能を持ったToDoアプリを作りました。 その時、データベースに保存したり、削除したりできるような機能を実装していました。 しかし、保存ボタンや削除ボタンを押してもアクションの処理が走るだけで味気ないです。保存できても出来てなくてもリダイレクトしたページを表示するだけです。 そんな味気ないアプリケーション嫌だ!!!!「保存に成功しました」ぐらいのステータスメッセージを表示はしてほしい。。。メッセージがないと成功か失敗かわからないですよね。 しかし、意外とステータスメッセージを自力で実装することはめんどくさいです。その理由を2つあげます。。 保存処理が実行した時にメッセージの内容を設定します。保存処理では最後にリダイレクトすることがほとんどだと思うので、メッセージの内容をリダイレクト先のアクションへ渡します。受け取ったアクションからビュー
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
くだらない話なんだけどね。 Laravelで、画面から項目を入れてテーブルに登録するって処理のテストをしていて、上手く動かなかった訳さ。phpのエラーが出たりしてね。 いくつか修正してphpのエラーは出なくなったんだけど、今度は419エラーの画面が出続けてしまう。 @csrfはあるし、特に変なところはない。なのに419のエラーが出ている。 ググっても答えが見つからずに途方に暮れていたとき、ある考えが閃いた。 俺って、テストを「戻る」で続けてね? @csrfのトークンの有効期限はデフォルト120分だそうな。 120分過ぎたら、トークンの期限が切れるよね。戻るボタンで戻った画面ではトークン取り直さないもんね。リロードしていないし。 ブラウザ閉じて、改めてurlから入ったら、難なくエラーは消えました。 おいらみたいなぼけなすの助けになれば幸いです。
Laravelの勉強をしている中で、POST通信をするときに「419エラー」が出ました。 原因と対策をメモ代わりにポストしておきます。 LaravelのPOST通信で419エラー ↑ こんなのが出ました。 419エラーとは そもそも「419エラーって何なんだ?」ということで「HTTPステータス」を確認。 あれ? 419が無いぞ。 Wikipediaにも載っていないということで、Laravelの独自エラーコードなんだろう、ということにしておきました(笑) 419エラーの原因 POST通信の際のCSRF(クロスサイトリクエストフォージェリ)対策に失敗しているので出ているエラーで、恐らくほとんどの場合は「CSRFトークン」の記述もれが原因だと思われます。 実際に私が419エラーを出した際もCSRFトークンの書き忘れでした。
イントロダクションIntroduction HTTP駆動のアプリケーションはステートレスのため、リクエスト間に渡りユーザーに関する情報を保存するセッションが提供されています。Laravelは記述的で統一されたAPIを使えるさまざまなバックエンドのセッションを用意しています。人気のあるMemcachedやRedis、データベースも始めからサポートしています。Since HTTP driven applications are stateless, sessions provide a way to store information about the user across multiple requests. Laravel ships with a variety of session backends that are accessed through an expressive,
<?php namespace App\Http\Controllers; use Illuminate\Http\Request, App\Http\Controllers\Controller; class TopController extends Controller { public function index(Request $request) { // セッションIDの再発行 $request->session()->regenerate(); // セッションの値を全て取得 $data = $request->session()->all(); // IDを取得 $id = $request->session()->get('id'); // 名前を取得 (クロージャー利用) $name = $request->session()->get('username', fun
vagrant@homestead:~/code/Laravel$ php artisan route:list +--------+----------+------------------------+------------------+------------------------------------------------------------------------+------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+------------------------+------------------+-----------------------------------------------------------------------
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く