輝く僕らの学費

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

未分類

[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

DigiAna-EX-BMP

100 100  200  500  800  900  1000  1100  再100 再200

no image

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

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

no image

春の京都、ロングドライブ2018

若いのでお金をかけないで京都へ行くよ。 お金のこと 旅行仲間になるべくお金で負担を感じさせたくない。一人の負担を抑えたいから4人集めたい。 交通費 宿泊費 ご飯 関東から京都って、遠いのだろうか 距離 …

no image

大学でプログラミングの講義がはじまりました

大学2年生になりました。2年の前期は勉強が重いです。 1限登校して4限終わりってのが週に4回あってつらさ感じる。 2年生になってやっとプログラミングの授業 つまずいたところ int n = 1234; …

no image

TOEIC300点から450点を目指して対策してみます!

「TOEICでスコア300点」という思っていた以上に低い点数をとってショックを受けたので、勉強して450点を目指すチャレンジを始めます!