輝く僕らの学費

外の空気が大好き、そこそこ忙しい理系の男子大学生のぶちおです。

未分類

[PHP]CodeigniterとIon Authでセッションが保持されない

投稿日:2017年11月15日 更新日:

どうも、Codeigniter3のセッションIDがアクセスごとに変わってるっぽくてセッションが保持されないようだ。

まずは環境

CnetOS7 / PHP7.1 / Codeigniter3.1.6 / Apache / MySQL5.5

ログインできてないっぽい

Codeigniterの認証ライブラリの「Ion Auth」を使ってるけど認証できたかどうかは画面の遷移で判断できるから、UsernameとPasswordの判定はできてるっぽい。

けれど、間違っていてもログインページに戻るだけでエラーメッセージの表示がなくて気持ち悪さを感じていた。

Cookieを眺めていると、アクセスするごとに違うセッションIDになっているのに気づいた。CodeigniterのセッションID名は「ci_session」。PHPの標準のPHPSESSIONで試してみると問題なく使えることはわかった。

それと、ローカル開発環境のXAMPPだと、ci_sessionもある程度固定されていて、問題なく認証ライブラリは動作した。セキュリティ面の挙動として毎回セッションIDを変更しているわけではないみたい。

考えられる原因

タイムゾーンあたりの設定、Codeigniter3でセッションライブラリが大きく変わっている、

タイムゾーンの設定

ちゃんと動く環境があるから、こういう部分の設定の違いだろうと考えられる。

config/config.phpにタイムゾーンの設定書いてみたけど出来てないかな。あとでphp.iniで設定。

Codeigniter3のセッションライブラリ

GithubにCodeigniter2で使うならModelとControllerのファイル名の頭文字を大文字に直してねって書いてあったから、今のIon AuthはCodeigniter3対応されてるように思える。

対処方法

2017/11/20 追記ここから

結局、覚えておきたい部分はここから。

下の記事タイトルそのまんまなことですが、「PHP7.1でCodeIgniterを動かすならver3.1.2以上で」ということで。

実はこの記事は不具合とか調べててCodeigniterのバージョンアップを考えていた時に一度見ていたやつだった。

どうも、バージョン確認をするときに、ダウンロードしたての最新のCodeigniterの定義ファイルを見ていたようで、そのときは「なんだ最新じゃん」って思っていたけど、後々実際のサイトのファイルを見直してみたら、PHP7.1でちゃんと動かないとされているバージョン3.2.1以前のものだった。

結果、Codeigniterのバージョンアップをして3.1.6にしたら、セッションライブラリが正常に動作するようになりました。

ついでに、コントローラやモデル、ビューの整理をしてすっきりしましたとさ。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

Mathjaxのテスト

数式を表示させるためのプラグインMathjaxの表示確認。 分数を表示する書き方 \frac{(a+b)}{3} $$\frac{(a+b)}{3}$$

no image

有線LANアダプタ「LUA4-U3-AGT」をmacOS High Sierraで使うための手順

最近社内LANに有線LANが導入され、macで使うためのUSBの有線LANアダプタが届いたので使ってみたときのトラブル。 この有線LANアダプタをHigh Sierraのmacで使えるようにするための …

no image

少し戸惑ったAWS Loft Tokyoへの行きかた入りかた

今月オープンしたばかりの「AWS Loft Tokyo」へ行ってきました。 初めて行きましたが、若干どうやって入っていけばいいか分からなかったので、記事にします。 AWS Loft Tokyo AWS …

no image

ちばらき民の俺が夜にドライブで行きたいところリスト

養老川臨海公園 舞浜 お台場 イタリア街 品川埠頭 筑波山 大慶園 柏ドンキ 日川浜鹿島工業団地 スターバックスつくば店 成田空港さくらの山

no image

mixiのBug Shooting Challenge#2で総合MVP獲ってきた

久しぶりのエントリーです。下書きにエイチームのインターンとかあるのに… 「帰ってブログを書くまでがBSC」っていうミクシィのchallenge系イベントの恒例のやつですが、寝ました。翌日に書いてます。 …