Internet Explorer 6 refusing to let me download

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • laredotornado@zipmail.com

    Internet Explorer 6 refusing to let me download

    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 = generateLoginFi le($user_id);

    header('Content-Type: text/html');
    header('Content-Length:' . strlen($file_co ntents));
    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_fi le.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

  • Andy Hassall

    #2
    Re: Internet Explorer 6 refusing to let me download

    On 25 Oct 2006 15:24:54 -0700, "laredotornado@ zipmail.com"
    <laredotornado@ zipmail.comwrot e:
    >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 = generateLoginFi le($user_id);
    >
    header('Content-Type: text/html');
    header('Content-Length:' . strlen($file_co ntents));
    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_fi le.php?UserId=2 from
    >mysite.mydomai n.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.u k :: http://www.andyh.co.uk
    http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool

    Comment

    • Tim Roberts

      #3
      Re: Internet Explorer 6 refusing to let me download

      "laredotornado@ zipmail.com" <laredotornado@ zipmail.comwrot e:
      >
      >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 = generateLoginFi le($user_id);
      >
      header('Content-Type: text/html');
      header('Content-Length:' . strlen($file_co ntents));
      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.

      Comment

      • laredotornado@zipmail.com

        #4
        Re: Internet Explorer 6 refusing to let me download

        Wow, you're good. Adding

        session_cache_l imiter('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.comwrot e:
        >
        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 = generateLoginFi le($user_id);

        header('Content-Type: text/html');
        header('Content-Length:' . strlen($file_co ntents));
        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_fi le.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.u k :: http://www.andyh.co.uk
        http://www.andyhsoftware.co.uk/space :: disk and FTP usage analysis tool

        Comment

        Working...