I'm working on a site that is using the Kohana framework. So far I've been fine jumping in and taking over the project. Today I'm implementing a few 3rd-party features that need to use a session variable. I can set the session variable and use it fine on pages that are using controllers to serve them up, but if I make ajax calls or in this instance calls to the 3rd party page, the session data is not available to me.
I cannot figure this one out. I've tried a few things from the Kohana forums, but nothing seems to work.
Visual example:
html
html/application
controller files
ajax.php
third-party.php
If I call up ajax.php I cannot access the session data that I am setting inside "kohana" pages.
my system/config/session.php file is using 'cookie' as the driver. Expiration and Regenerate are set to 0.
Any ideas?
That's because you're using the cookie session driver. You'd probably be able to get access if you were using the 'native' driver, which uses the internal php session.
As asked above, is there some reason you're not building the ajax.php within Kohana? That would save you a lot of trouble.
On the other hand, it's possible to decrypt the session from within your external ajax.php (which I wouldn't recommend, but have had to do in order to get the kohana session data passed to a WordPress installation running on a subdomain).
From what you say about the session configuration I think you are using Kohana 2.x.
And Kohana 2 clears the $_GLOBALS. So you might have problems accessing native $_POST, $_COOKIE, $_SESSION, $_GET, $_GLOBALS and $_REQUEST arrays.
I recommend using the native driver for the session library, but I highly recommend even more migrating to Kohana 3.x.
Related
I am trying to a write a multi-module application in ZF2 but i am facing some weird problem of session.
Session are getting destroyed automatically when i am switching the modules in browser.
Is there any way to share single session accros all the modules.
Thanks
Do you use ZF2 session Manager?
if yes, you probably configure your session in a single module and the other can't find the config
Is there a middleware for sessions in PHP Slim Framework? If not, is there a lightweight session library that works well with the Slim Framework? Its important that the library supports session storage in a database (MySQL).
Slim session manager package can be used. It's available at:
https://github.com/yusukezzz/slim-session-manager
Composer based installation
Slim middleware
Can be used with any database driver
Hope it helps.
PHP native sessions can be database backed.
PHP sessions in Database
It's pretty easy to use native PHP sessions, not sure why you'd need a library.
According to their Session Docs, they only have
Native Session Store
Cookie Session Store
It doesn't appear to have a database backed session. Maybe its in development or maybe there is a 3rd party plugin for it.
I'm using Symfony components in my web application. I need to store session in APC but unfortunatelly I can't find the way to do it.
As I see here Symfony does not support APC as a session handler. Is that true?
I have found an old example of using APC as a session handler in Symfony. But there all configuration is done in factories.yml file which I don't have since I'm only using standalone Symfony components.
Can anyone give me an example of using APC as a session handler using only Symfony components?
Since I don't get any answer here for a long time I will answer the question myself. For now there is no built in suport for APC as a session handler in Symphony framework. There is no particlar reason for it, likely Symphony developers just did not get to it.
The solution is simple, just code APCSessionHandler.php file yourself (I was not doing it because we decided not use this in project), APCSessionHandler will be very similar to MemcachedSessionHandler.php file.
How to store PHP sessions in APC Cache? suggests it is feasible but a bad idea for a busy site. The accepted answer lists a few useful ideas
I'm trying to integrate Facebook's API in a CodeIgniter project, however it seems to be not working because sessions are disabled somehow in CodeIgniter. (Trying to integrate outside CodeIgniter works, but inside a codeigniter project it doesn't work).
Is there any way to do this? All I want is for native sessions to not be cleared or destroyed by CodeIgniter. If the only way is to hack the core to remove a line or two, then I'm willing to do it. I think there's someplace where its doing $_SESSION = null or something like that. Where's this place, so I can remove that line?
If you follow this blog on a fresh CI install, it works without any problem:
http://www.dannyherran.com/2011/02/facebook-php-sdk-and-codeigniter-for-basic-user-authentication/
From there, you can continue to build you application, or find where it goes wrong.
in CI session are not disabled.
It must be done in your manual coding.
Please refer your coding again.
It is also possible that some jQuery - JS is conflicted in project, which can destroy session.
There is a library to extend CI sessions (which are cookies) to use native server sessions.
Have a look at this native session library.
I have an issue with a project that I am working on, basically the whole application runs as a Drupal 6 install, and I am bootstrapping a Zend Framework Application to pull out the data I need (which I will then make available in various views via a module I will create).
I have the majority of this working correctly, but the issue I am having is with sessions, the actual error I am getting is as follows :-
PHP Fatal error: Uncaught exception 'Zend_Session_Exception' with
message 'session has already been started by session.auto-start or
session_start()'
Which I think is happening because Drupal is setting up the session and then ZF is then also trying to setup its own sessions and they are clashing. Is there a way I can override/extend the default Zend Session handling to let it use the Drupal Session API?
Thanks
Rich
Are you going to actually be storing information in the Zend session? If not, you could do away with starting a Zend session completely, or at least conditionally skip starting the Zend Session if the session has already been started.
If you do, you will not be able to start or use any Zend_Session* related functions (Zend_Session, Zend_Session_Namespace) if a session was previously started with session_start(). There does not appear to be any way around this.
Instead, from your Zend Application, you can just use the $_SESSION superglobal anywhere you need to use session data.
This won't be of much help, but a useful reference is Starting a session in Zend.