This library contains two classes which allow you to quickly and securely setup sessions for a web application. As it's name implies, it's centred around sessions being very secure, having cookies which are signed with a visitors IP address and user agent.
As most of us do, I use sessions extensively when developing a more-than-basic web application or site. I wanted to have a library that I could really quickly drop-in, whereby I don't have to worry about if it's secure. To trust it.
The second class in this library,
SMSession is designed in the same ethos: to
quickly be able to throw in
Memcached based sessions (important for load
balanced setups) without too much effort.
This project includes two classes which can be instantiated:
SSessionServer-default based secure sessions
SMSessionMemcached-based secure sessions
Both classes contain a variety of public methods which should be viewed in the source itself.
One of these two classes ought to be instantiated early on in the request
process. I do so by having a common include which immediately opens an
SMSession instance, defines the Memcached server(s), sets the session (cookie)
name, host (based on the
$_SERVER['HTTP_HOST'] variable), and adds the
server(s) to the instance.
Then? I just call the
open method on the instance. And we're in business. From
here, you can use the standard
$_SESSION variable to read and write from/to
Once again, I wanted this library to be used to solve one simple challenge:
To open and manage a session, securely.
Additionally, I seperated the creation of a session from a memcached-powered session in order to allow flexibliity for developers who either don't have memcached installed on their server, or don't have root access to do so.
Finally, I would eventually like to create an APC powered session script, and
this is very possible by having the
SSession class as a parent, as there is no
code in it that stipulates which engine should store a session's data.
PHP-Pagination is next.