i have a module to parse serialized php sessions

Mauro Stettler mauro.stettler at gmail.com
Sun Feb 14 05:13:29 MSK 2010


hi

i recently wrote an nginx module that can extract certain values out
of a serialized php session. in my case i'm retrieving the php session
from a memcache. this thing isn't tested in prod, in fact i started it
yesterday. but it seems to work and i can't find any bigger problems
with it at the moment.

currently it works like this:

 33         location / {
 34             eval $session {
 35                 set $memcached_key
"d41d8cd98f00b204e9800998ecf8427e:5b9hm9rspbgajg22eqpqs6ang1";
 37                 memcached_pass 192.168.1.237:11210;
 38             }
...
 44             php_session_parse $admin_right $session
"symfony/user/sfUser/attributes|s:10:\"subscriber\";s:7:\"isAdmin\"";
...
 53             if ($admin_right = "b:1")
 54             {
 55                 # do something
 56             }

i think the format how i am specifying the value that i want to
extract from the session might be a little confusing (and there are no
docs yet). in the example the value that i want to extract is
specified with the string:

"symfony/user/sfUser/attributes|s:10:\"subscriber\";s:7:\"isAdmin\"

which means on the toplevel array i want the element
"symfony/user/sfUser/attributes", second level i want the element
"s:10:\"subscriber\"", third level i want the element
"s:7:\"isAdmin\"". separators between the elements are ; and |. this
might seem confusing, but thats the way how its done in the php
session serialization...

i would be happy about some feedbacks. could a thing like this be
useful? i'm sure there are still bugs too...

thats the link:

http://github.com/replay/ngx_http_php_session


mauro



More information about the nginx mailing list