At 06:39 15.11.2002, Twist said: --------------------[snip]-------------------- > This is all great, the problem is that it loads a new page >the way I am doing it. I am using the header() function to get the >browser to download. I have seen sites with counters that download >the file and update the count without loading a new page, without >reloading the current page even. So I am wondering how are they >doing this? Or better yet how can I get my script to work like I >wish it to? --------------------[snip]--------------------
With MIME (and HTTP is MIME-compliant) you can transmit more than one entity in a single pass - this is called "multipart" transmission. The recipient (here: the browser) should handle all parts of a multipart message per se. What you need to do is to set the content type of the response to multipart/alternative, and transmit the HTML result first, and the file content next. Both parts are delimited by a boundary string, and each part has its own MIME header. Something like: // construct the "alternative" hader for the site's response $boundary = md5(date('hisjmy')); header("Content-type: multipart/alternative; boundary=\"$boundary\""); // The HTML page starts with a boundary and its own MIME header $html_head = "--$boundary\n" . "Content-Type: text/html\n" . "Content-Disposition: inline\n\n"; // The Attachment starts with another MIME header $attach_head = "\n--boundary\n" . "Content-Type: application/octet-stream\n" . "Content-Transfer-Encoding: base64\n" . "Content-Disposition: attachment;\n" . " filename=\"$filename\""; Your response would then look something like this: echo $html_head; echo $html_page_contents; echo $attach_head(); transmit_file_content(); echo "\n--$boundary\n"; This is top off my head, but it should work. For more information on multipart responses you might consult ftp://ftp.rfc-editor.org/in-notes/rfc2045.txt (MIME Part I) ftp://ftp.rfc-editor.org/in-notes/rfc2046.txt (MIME Part II) ftp://ftp.rfc-editor.org/in-notes/rfc2047.txt (MIME Part III) ftp://ftp.rfc-editor.org/in-notes/rfc2183.txt (Content-Disposition) -- >O Ernest E. Vogelsinger (\) ICQ #13394035 ^ http://www.vogelsinger.at/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php