PHP session problem while using iframe.
Hi guys, recently i am so busy and not able to update my website often.
But today, I face a problem on the PHP session while using iframe to include a custom php file.
The custom php file just doing some select/update command using session data.
I try my script in Google Chrome & Mozilla Firefox, everything is working fine but not Internet Explorer.
The data inside the session is not retrievable and causing the entitle script not working.
Below is my sample script
<?php session_start(); //echo session_id(); //PRINT OUT THE SESSION ID if(!isset($_SESSION['mydata']) && $_POST['action'] == 'update') die("unable to get mydata"); $_SESSION['mydata'] = 'ANYTHING'; //PERFORM SELECT/UPDATE ?> |
Above just a simple sample, if you using wordpress/joomla (php applications) and iframe the custom page and using Internet Explorer to retrieve and update it. The page should display “unable to get mydata” but not perform the update statement.
After debug for sometime, I try to print out the session_id() and found that everything the iframe page refresh, it will generate another new session_id but not use the previous id (This act differently with Firefox and Chrome) and this is the main issue causing my script is not working.
Then I google a bit and find the solution below.
What you need to do it just add in a single line command into your custom php page.
<?php header('P3P: CP="CAO PSA OUR"'); //ADD IN THIS LINE IN ORDER TO SOLVE THE INTERNET EXPLORER ALWAYS GET NEW SESSION ISSUE session_start(); //echo session_id(); //PRINT OUT THE SESSION ID if(!isset($_SESSION['mydata']) && $_POST['action'] == 'update') die("unable to get mydata"); $_SESSION['mydata'] = 'ANYTHING'; //PERFORM SELECT/UPDATE ?> |
21 Comments to “PHP session problem while using iframe.”
Leave a Reply
You should use sessions and database instead.
This header saved my life, rarely had this problem, but in the last two times I could not solve it.
Now, finally resolved.
Excellent post.
Thanks…
The header save my life as well 😀
Cheer~~!
Спасибо, проблема решилась =)
Good solution, thanks 🙂
Unfortunately it doesn’t work in FF (3.5.8) under Windows 2003 Server, but under Win XP or Vista it does.
Hi Tomek,
I found no problem by using FF 3.0.X….
You face the problem on FF 3.5.8?
Thanks a lot………..
This is a really useful solution.saved me a lot of work …
I was trying to solve the same problem for a while.
Thanks a lot.
Great Boss 🙂
Your code helped me on my Project Release 🙂
Thanks a lot !!!!!!!!!!
I am having a problem loading an iframe on this page in IE. It works fine on all other browsers. Any tips?
http://untaxableinc.com/our-services/manage-your-tax-documents/
Hi Paul,
Checked your site, the iframe seem working fine but found a js problem.
Are you try to do some cross domain trigger??
I don’t think it will allow you to do it since it is a security issue.
You saved my life. Thanks a lot.. I tried 100 of different things and finally this single line of code fixed it.
Thanks! 🙂
hi,
You saved my live too 🙂
I do consider all the ideas you’ve presented to your post. They are very convincing and can certainly work. Nonetheless, the posts are too brief for newbies. May just you please lengthen them a bit from next time? Thank you for the post.
Thanks for this – saved us a lot of work!
3 years later…still a great hint. 😉
Thanks a lot!
not working fror me
Thank you so much!
Still saving people after so many years!
Saved my bacon today!
[…] I believe this article’ll be useful: http://www.how2guru.com/archives/php-session-problem-while-using-iframe/ […]
great !!