RSS
people

PHP session problem while using iframe.

Share/Save/Bookmark

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
?>

4 Responses to “PHP session problem while using iframe.”

  1. Trond Says:

    You should use sessions and database instead.

  2. Eduardo HRB Says:

    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.

  3. h2Guru Says:

    Thanks…
    The header save my life as well :D
    Cheer~~!

  4. Tomek Says:

    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.

Leave a Reply