PHPのセッションをPerlでも参照、更新してみる

BTOパソコン・パソコン関連商品がお買い得!パソコン工房のセール

PHP王国にPerl爺も溶け込みたい

何がしたいかと申しますと、

最近はWordPressもそうなんですが、ポータル的なサイト、イントラネットでもそうなんですが、PHPがメインなんですよね。PHPでできたトップページにログインして、PHPでセッション管理しながら推移していく、みたいな感じで。

そんなPHP王国的なサイトでも、問題なくPerlで作ったプログラムも動きますが、ちゃんとPHPセッションを引き継いで、更新して、またPHP王国側にお返ししないと、サイトの一貫性というか、王国に溶け込めないなぁと思いまして、PHPのセッションファイルをPerlで読み込むサブルーチンを考えてみました。

PHPセッション設定、情報の確認

セッション名の確認とセッションファイルの保存場所をPHP.iniを見て確認をしておきます(またはphpinfo()で表示してみる)

上の設定ですと、

セッション名は、「PHPSESSID」

ファイルの保存場所は、「/var/lib/php/session」となります。

PHPのセッションが、ログイン画面等で以下のような感じで始まっていたとします

「userid」というセッション変数名を使っていることを確認しておきます

これらの情報をもとにして作ってみます

PHPセッションを確認するPerlのサブルーチン

さて、どんな動きをさせようかと考えました

まずは、PerlプログラムはGETで[userid]の引数をもらいつつ、

例:/perlprogram.cgi?userid=$_SESSION[‘userid’]

セッション名(PHPSESSID)のCookieを取得します

Cookieからセッションファイル名を特定して、引数で受け取った[userid]と、セッションファイルに記録されている[userid]とを比較して、一致していたら継続、セッションファイルがなかったり、[userid]が一致しなかったら、ログインページにリダイレクトするなどの、合否(1,0)判定をする。

セッションファイルを見ただけだと、だぶんセッション継続時間延長がされずに、セッション切れが突然起こる可能性があるので、忘れずにセッションファイルの更新もしておく。

[userid]の比較が必要かどうかはかなり不明ですが、そんなサブルーチンにしてみました。

イケてなかったらすみません。。