homepage Welcome to WebmasterWorld Guest from 54.166.123.2
register, free tools, login, search, pro membership, help, library, announcements, recent posts, open posts,
Become a Pro Member

Visit PubCon.com
Home / Forums Index / Code, Content, and Presentation / PHP Server Side Scripting
Forum Library, Charter, Moderators: coopster & jatar k

PHP Server Side Scripting Forum

    
Strange problem: session and readfile
session_start will create another thread?
iProgram




msg:3032671
 10:25 am on Aug 3, 2006 (gmt 0)

I have a script which sends file to end user:

<?
...
header('length, type...')
readfile('file-to-download.dat');

//the following script should be executed after the whole file downloaded completely.
mail('my@email.com', 'Download completed', 'body', 'from: my@email.com');
?>

It works without any problem. The readfile function shows the "File download" dialog of IE and I won't receive email until IE downloaded the whole file.

However, I found that I need to use session in this script, so I added session_start() at the beginning of this it:

<?
session_start()
...
?>

And suddenly, as long as I execute this script, without finishing the download, I can receive the email message immediately. Why this happened? Is there a way to solve this problem?

 

henry0




msg:3032770
 11:58 am on Aug 3, 2006 (gmt 0)

It could be that your PHP.INI does not allow for header not to be set at the your page very top,
as such the order of actions could be changed.

iProgram




msg:3032802
 12:31 pm on Aug 3, 2006 (gmt 0)

So which parameter of php.ini should I look at? I could not move the session_start() to lines under readfile().

henry0




msg:3032815
 12:55 pm on Aug 3, 2006 (gmt 0)

Try turning output buffering on

output_buffering = On
so there in no " ; " at the beginning of the line

This allows for sending headers from any position in your script
It is done at the cost of a very slightly slow-down of the exec.
However you should not be scared about it unless your script is a huge one with a heavy load of PHP calls.

<edit>
Don't forget to restart Apache
</edit>

iProgram




msg:3032975
 2:41 pm on Aug 3, 2006 (gmt 0)

I'm trembling, abandon seesion in this script is a better solution ;-)

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / PHP Server Side Scripting
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved