Finglish
Finglish

Reputation: 9956

How to share session data between Django and PHP on the same domain

I have a Django application that logs users in and out using the standard Django auth system. The app also uses sessions which are stored in the Django database (db storage is also the Django default).

So far, so good, but:

On the same domain I have a large collection of php pages running on apache. I want to be able to log in via my Django application and have django initiate all my session variables and then when I click a link that takes me to a php section I want to be able to access the session variables I created in Django in php.

What is my best option for sharing the session?

(If it makes any difference PHP is not editing the session, only using the variables)

Upvotes: 3

Views: 3318

Answers (2)

Finglish
Finglish

Reputation: 9956

SUCCESS!! (of a kind). Its a little hacked together but I managed to get it working.

Rather then trying to rewrite django_php_bridge db.py file to use the new version of phpserialise (1.2),

I used to old version with a couple of my own custom adjustments. Most importantly I had to add an extra if statement to the serialize function to convert a unicode string but apart from that I just followed the instructions djang_php_bridge docs file (remembering to set the SESSION_COOKIE_NAME field in the django settings file), and it worked straight away.

At some point when I have more time I will have a go at re-writing the django_php_bridge to use the new latest phpserialize version, but for now I am just happy to have a successful out come.

Upvotes: 0

hakre
hakre

Reputation: 197757

You can implement your own Custom Session Handler in PHP. Connect to the database you store the session data from the Django database and those data will be transparently offered in PHP as the session values then.

A benefit of the custom session handler is as well, that you can make that session in PHP write protected, you just drop any changes.

Next to that you need to share the session id, it is connected to the session name. I do not know Django well, but I guess there is something comparable, so if you make it compatible cookies or URL-parameters might even work instantly.

Upvotes: 1

Related Questions