Re: Header problem - SOLVED

From: Date: Mon, 19 Oct 2009 21:44:57 +0000
Subject: Re: Header problem - SOLVED
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-299081@lists.php.net to get a copy of this message
This has been solved today. Talawa had a similar problem and came up with a solution to his problem, namely using session_write_close() before creating the headers. That stunt also solved my problem :-) -- Kind regards Kim Emax Kim Madsen wrote on 2009-10-03 13:30: > Hi PHP people > > I have a really strange and annoying problem. I've got a site, where > members can download music. User clicks index.php (in index.php > there's an iframe, that opens another file), if certain check are okay > then a popup window opens download.php, where a mp3 file is fetched > from the server and renamed in the header, then pushed to the enduser, > this works fine. But now I want to create zipfiles too but when a user > downloads a zipfile it's like the whole site is freezed until download > has completed. My guess is that this is some sort of header problem > (see headers below), due to three headers at the same time, cause the > class works as expected in the test page i've created. Inputs to > correct headers would be appriciated very much :-) > > Mp3 headers: > $new_filename = "attachment; filename=\"{$artist} - {$title}.mp3\""; > header('Content-Description: File Transfer'); > header("Content-Type: application/octet-stream"); > header("Content-Length: $size"); > header("Content-Disposition: $new_filename"); > header("Content-Transfer-Encoding: binary"); > readfile($source_file); > > Zip headers: > $zip = new zipfile(); > $zip->add_dir("."); > $new_filename= "{$artist} - {$title}.mp3"; > if(mysql_num_rows($result)) { > $zip->add_file($file, $new_filename); > } > header("Pragma: public"); > header("Expires: 0"); > header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); > header("Cache-Control: private",false); > header("Content-type: application/zip"); > #header("Content-Type: application/octet-stream"); > header("Content-disposition: attachment; filename=\"zipTest.zip\""); > header('Content-Transfer-Encoding: binary'); > ob_end_clean(); > echo $zip->file(); > > Code example: http://lps.netlinq.dk/test010/test_zip.class.php > > Headers (fetched with firefox add-on: live http headers) > > This is headers from the site, where the problem occurs: > > 1. click on the link to a title (Maxwell in this case) > ---------------------------------------------------------- > http://lps.netlinq.dk/?action=download&track_id=357 > > GET /?action=download&track_id=357 HTTP/1.1 > Host: lps.netlinq.dk > User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/ > 20090803 Ubuntu/9.04 (jaunty) Shiretoko/3.5.2 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/ > *;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 300 > Connection: keep-alive > Referer: http://lps.netlinq.dk/?action=download&track_id=350 > Cookie: login_email=kim%40emax.dk; > PHPSESSID=fbb5d6adec802766cf6f638c99ab4f1d > > HTTP/1.x 200 OK > Date: Fri, 02 Oct 2009 15:15:21 GMT > Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch > mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24) mod_ssl/2.2.8 OpenSSL/0.9.8g > X-Powered-By: PHP/5.2.4-2ubuntu5.6 > Expires: Thu, 19 Nov 1981 08:52:00 GMT > Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre- > check=0 > Pragma: no-cache > Vary: Accept-Encoding > Content-Encoding: gzip > Content-Length: 4250 > Keep-Alive: timeout=15, max=100 > Connection: Keep-Alive > Content-Type: text/html > > 2. I click on "download zip" (this is a link to index.php) > if conditions are met, then a popup with download.php is activated and > here a zip header is made > > ---------------------------------------------------------- > http://lps.netlinq.dk/index.php > > POST /index.php HTTP/1.1 > Host: lps.netlinq.dk > User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/ > 20090803 Ubuntu/9.04 (jaunty) Shiretoko/3.5.2 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/ > *;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 300 > Connection: keep-alive > Referer: http://lps.netlinq.dk/?action=download&track_id=357 > Cookie: login_email=kim%40emax.dk; > PHPSESSID=fbb5d6adec802766cf6f638c99ab4f1d > Content-Type: application/x-www-form-urlencoded > Content-Length: 131 > action=ask_questions&download_zipfile=1&version_id > %5B1065%5D=1&version_id%5B1066%5D=1&version_id%5B1067%5D=1&version_id > %5B1068%5D=1 > > HTTP/1.x 200 OK > Date: Fri, 02 Oct 2009 15:15:29 GMT > Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch > mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24) mod_ssl/2.2.8 OpenSSL/0.9.8g > X-Powered-By: PHP/5.2.4-2ubuntu5.6 > Expires: Thu, 19 Nov 1981 08:52:00 GMT > Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre- > check=0 > Pragma: no-cache > Vary: Accept-Encoding > Content-Encoding: gzip > Content-Length: 3216 > Keep-Alive: timeout=15, max=99 > Connection: Keep-Alive > Content-Type: text/html > ---------------------------------------------------------- > http://lps.netlinq.dk/download.php?track_id=357&member_id=1&string=41e0cd250ca3a40598e2019fd4c813cc&kbit=320&zipfile=1 > > > GET /download.php? > track_id=357&member_id=1&string=41e0cd250ca3a40598e2019fd4c813cc&kbit=320&zipfile=1 > > HTTP/1.1 > Host: lps.netlinq.dk > User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/ > 20090803 Ubuntu/9.04 (jaunty) Shiretoko/3.5.2 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/ > *;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 300 > Connection: keep-alive > Referer: http://lps.netlinq.dk/index.php > Cookie: login_email=kim%40emax.dk; > PHPSESSID=fbb5d6adec802766cf6f638c99ab4f1d > > HTTP/1.x 200 OK > Date: Fri, 02 Oct 2009 15:15:30 GMT > Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch > mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24) mod_ssl/2.2.8 OpenSSL/0.9.8g > X-Powered-By: PHP/5.2.4-2ubuntu5.6 > Expires: Thu, 19 Nov 1981 08:52:00 GMT > Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre- > check=0 > Pragma: no-cache > Content-Disposition: attachment; filename="Maxwell - Bad Habits > (Remixes).zip" > Content-Transfer-Encoding: binary > Content-Length: 54234978 > Keep-Alive: timeout=15, max=98 > Connection: Keep-Alive > Content-Type: application/zip > ---------------------------------------------------------- > 3. as long as the zip file is downloading the site "freezes" until > download is complete, then the link I've clicked is "activated" > ___________________________________________________________________________ > > And this is the headers from the test page: > http://lps.netlinq.dk/test010/test_zip.class.php > http://home.emax.dk/~emax/test/test_zip.class.php > > Same files, different servers > > headers from test010: > > http://home.emax.dk/~emax/test/test_zip.class.php?zip_to_browser=1 > > GET /~emax/test/test_zip.class.php?zip_to_browser=1 HTTP/1.1 > Host: home.emax.dk > User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/ > 20090803 Ubuntu/9.04 (jaunty) Shiretoko/3.5.2 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/ > *;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 300 > Connection: keep-alive > Referer: http://home.emax.dk/~emax/test/test_zip.class.php?test=15 > > HTTP/1.x 200 OK > Date: Fri, 02 Oct 2009 14:31:08 GMT > Server: Apache/1.3.37 (Unix) PHP/4.4.4 > X-Powered-By: PHP/4.4.4 > Pragma: public > Expires: 0 > Cache-Control: must-revalidate, post-check=0, pre-check=0, private > Content-Disposition: attachment; filename="zipTest2.zip" > Content-Transfer-Encoding: binary > Keep-Alive: timeout=15, max=99 > Connection: Keep-Alive > Transfer-Encoding: chunked > Content-Type: application/zip > ____________________________________________________________________ > > headers from Netlinq: > > GET /test010/test_zip.class.php?zip_to_browser=1 HTTP/1.1 > Host: lps.netlinq.dk > User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/ > 20090803 Ubuntu/9.04 (jaunty) Shiretoko/3.5.2 > Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/ > *;q=0.8 > Accept-Language: en-us,en;q=0.5 > Accept-Encoding: gzip,deflate > Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 > Keep-Alive: 300 > Connection: keep-alive > Referer: http://lps.netlinq.dk/test010/test_zip.class.php?test=21 > Cookie: login_email=kim%40emax.dk; > PHPSESSID=fbb5d6adec802766cf6f638c99ab4f1d > > HTTP/1.x 200 OK > Date: Fri, 02 Oct 2009 14:55:37 GMT > Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch > mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24) mod_ssl/2.2.8 OpenSSL/0.9.8g > X-Powered-By: PHP/5.2.4-2ubuntu5.6 > Pragma: public > Expires: 0 > Cache-Control: must-revalidate, post-check=0, pre-check=0, private > Content-Disposition: attachment; filename="zipTest2.zip" > Content-Transfer-Encoding: binary > Keep-Alive: timeout=15, max=100 > Connection: Keep-Alive > Transfer-Encoding: chunked > Content-Type: application/zip > ____________________________________________________________________ > -- Kind regards Kim Emax - masterminds.dk

« previous php.general (#299081) next »