Search code examples
sessionhostingsession-statephp

codeigniter session losing session state when hosted with phpfog


I've built a php/codeigniter app which worked perfectly when I hosted it with rackspace on a vps. I've recently migrated it over to phpfog's hosting environment however I'm running into an issue with my user's sessions.

I'm using the sessions class to store data in the database. The problem I'm seeing is that on the initial page request, two session records are created in the database. And then for every page request following that a new session record is created. The application loses its session when going from page to page.

I'm not sure what could be causing this, maybe the cache-layer or the load balancer of phpfog? Any ideas? Thanks!

UPDATE:

After playing around with this for quite some time I might have been able to track this bug down to a @font-face include in one of my CSS files????????

/*
@font-face {
    font-family: 'ColaborateLightRegular';
    src: url('/application/assets/web/css/fonts/ColabLig-webfont.eot');
    src: url('/application/assets/web/css/fonts/ColabLig-webfont.eot?iefix') format('eot'),
         url('/application/assets/web/css/fonts/ColabLig-webfont.woff') format('woff'),
         url('/application/assets/web/css/fonts/ColabLig-webfont.ttf') format('truetype'),
         url('/application/assets/web/css/fonts/ColabLig-webfont.svg#webfontR2xcGGVv') format('svg');
    font-weight: normal;
    font-style: normal;
}
*/

When that block of code is not commented out in a style sheet included on many of my website's pages, a new session is created in my database. When it is commented out, the new session doesn't occur? I'll look into it a bit more tomorrow because right now I'm falling asleep but this is pretty weird. Does anyone know what might be causing this?


Solution

  • So I eventually determined what was causing the extra sessions to appear in my database. I had modified codeigniter to render a custom 404 page with a controller and a view, and this page was causing a new session to be generated. Essentially my browser would be looking for an image that didn't exist on my server, and since the browser was requesting an image/static resource it wasn't passing along a cookie for it. The 404-controller would then get initiated and since no cookie was passed it would assume this was a new session and generate one. Pretty tricky bug to track down.