This is a discussion on Internet Explorer 6 refusing to let me download within the PHP Language forums, part of the PHP Programming Forums category; Hi, This problem only affects PC IE. On a secured page (a page visited via https), there is a link ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi,
This problem only affects PC IE. On a secured page (a page visited via https), there is a link that reads -- "Download HTML File". The link connects to this page <?php require("../../util_fns.php"); session_start(); $user_id = $_REQUEST[USER_ID_PARAM]; $file_contents = generateLoginFile($user_id); header('Content-Type: text/html'); header('Content-Length:' . strlen($file_contents)); header('Content-Disposition: attachment; filename="' . str_replace("%s", getCompanyName($user_id), AUTO_LOGIN_FILE_TITLE) . '.html"'); print $file_contents; ?> However, on Internet Explorer, when I'm prompted to save the file, I click "Save" and then get an error message stating, "Internet Explorer cannot download ...ate_login_file.php?UserId=2 from mysite.mydomain.com. Internet Explorer was not able to open the Internet site. The requested site is either unavailable or cannot be found. Please try again later." Is there something wrong iwth one of the headers I'm sending? I'm using PHP 4.4.4. Thanks, - Dave |
|
|||
|
On 25 Oct 2006 15:24:54 -0700, "laredotornado@zipmail.com"
<laredotornado@zipmail.com> wrote: >This problem only affects PC IE. On a secured page (a page visited via >https), there is a link that reads -- "Download HTML File". The link >connects to this page > ><?php > require("../../util_fns.php"); > > session_start(); > > $user_id = $_REQUEST[USER_ID_PARAM]; > $file_contents = generateLoginFile($user_id); > > header('Content-Type: text/html'); > header('Content-Length:' . strlen($file_contents)); > header('Content-Disposition: attachment; filename="' . >str_replace("%s", getCompanyName($user_id), AUTO_LOGIN_FILE_TITLE) . >'.html"'); > > print $file_contents; >?> > >However, on Internet Explorer, when I'm prompted to save the file, I >click "Save" and then get an error message stating, "Internet Explorer >cannot download ...ate_login_file.php?UserId=2 from >mysite.mydomain.com. > >Internet Explorer was not able to open the Internet site. The >requested site is either unavailable or cannot be found. Please try >again later." > >Is there something wrong iwth one of the headers I'm sending? I'm >using PHP 4.4.4. session_start() by default sends a cache control header including "no-store". Internet Explorer takes this a bit too literally, but doesn't have appropriate error handling for the case, and as a result explodes cryptically when you attempt to save the output page to disk. Before session_start(), add "session_cache_limiter('none');", or look up that function and tweak the limiter as appropriate (probably 'private' is closer to the mark). -- Andy Hassall :: andy@andyh.co.uk :: http://www.andyh.co.uk http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool |
|
|||
|
"laredotornado@zipmail.com" <laredotornado@zipmail.com> wrote:
> >This problem only affects PC IE. On a secured page (a page visited via >https), there is a link that reads -- "Download HTML File". The link >connects to this page > ><?php > require("../../util_fns.php"); > > session_start(); > > $user_id = $_REQUEST[USER_ID_PARAM]; > $file_contents = generateLoginFile($user_id); > > header('Content-Type: text/html'); > header('Content-Length:' . strlen($file_contents)); > header('Content-Disposition: attachment; filename="' . >str_replace("%s", getCompanyName($user_id), AUTO_LOGIN_FILE_TITLE) . >'.html"'); Your headers are lying. You are not sending text/html content. IE can be somewhat picky about the headers. Try this: header('Content-Type: application/download'); -- Tim Roberts, timr@probo.com Providenza & Boekelheide, Inc. |
|
|||
|
Wow, you're good. Adding
session_cache_limiter('none'); prior to the session_start() directive worked. Thanks, - Dave Andy Hassall wrote: > On 25 Oct 2006 15:24:54 -0700, "laredotornado@zipmail.com" > <laredotornado@zipmail.com> wrote: > > >This problem only affects PC IE. On a secured page (a page visited via > >https), there is a link that reads -- "Download HTML File". The link > >connects to this page > > > ><?php > > require("../../util_fns.php"); > > > > session_start(); > > > > $user_id = $_REQUEST[USER_ID_PARAM]; > > $file_contents = generateLoginFile($user_id); > > > > header('Content-Type: text/html'); > > header('Content-Length:' . strlen($file_contents)); > > header('Content-Disposition: attachment; filename="' . > >str_replace("%s", getCompanyName($user_id), AUTO_LOGIN_FILE_TITLE) . > >'.html"'); > > > > print $file_contents; > >?> > > > >However, on Internet Explorer, when I'm prompted to save the file, I > >click "Save" and then get an error message stating, "Internet Explorer > >cannot download ...ate_login_file.php?UserId=2 from > >mysite.mydomain.com. > > > >Internet Explorer was not able to open the Internet site. The > >requested site is either unavailable or cannot be found. Please try > >again later." > > > >Is there something wrong iwth one of the headers I'm sending? I'm > >using PHP 4.4.4. > > session_start() by default sends a cache control header including "no-store". > Internet Explorer takes this a bit too literally, but doesn't have appropriate > error handling for the case, and as a result explodes cryptically when you > attempt to save the output page to disk. > > Before session_start(), add "session_cache_limiter('none');", or look up that > function and tweak the limiter as appropriate (probably 'private' is closer to > the mark). > > -- > Andy Hassall :: andy@andyh.co.uk :: http://www.andyh.co.uk > http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool |