Here is a snippet of what I used that worked...
$filename = "whatever.txt";
$force = "1";
$isIE = 0;
if (strstr($HTTP_USER_AGENT, 'compatible; MSIE ') !== false &&
strstr($HTTP_USER_AGENT, 'Opera') === false) {
$isIE = 1;
}
if (strstr($HTTP_USER_AGENT, 'compatible; MSIE 6') !== false &&
strstr($HTTP_USER_AGENT, 'Opera') === false) {
$isIE6 = 1;
}
$filename = ereg_replace('[^-a-zA-Z0-9\.]', '_', $filename);
// A Pox on Microsoft and it's Office!
if (! $force) {
// Try to show in browser window
header("Content-Disposition: inline; filename=\"$filename\"");
header("Content-Type: $type0/$type1; name=\"$filename\"");
} else {
// Try to pop up the "save as" box
// IE makes this hard. It pops up 2 save boxes, or none.
// [url]http://support.microsoft.com/support/kb/articles/Q238/5/88.ASP[/url]
// But, accordint to Microsoft, it is "RFC compliant but doesn't
// take into account some deviations that allowed within the
// specification." Doesn't that mean RFC non-compliant?
// [url]http://support.microsoft.com/support/kb/articles/Q258/4/52.ASP[/url]
//
// The best thing you can do for IE is to upgrade to the latest
// version
if ($isIE && !isset($isIE6)) {
// [url]http://support.microsoft.com/support/kb/articles/Q182/3/15.asp[/url]
// Do not have quotes around filename, but that applied to
// "attachment"... does it apply to inline too?
//
// This combination seems to work mostly. IE 5.5 SP 1 has
// known issues (see the Microsoft Knowledge Base)
header("Content-Disposition: inline; filename=$filename");
// This works for most types, but doesn't work with Word files
header("Content-Type: application/download; name=\"$filename\"");
// These are spares, just in case. :-)
//header("Content-Type: $type0/$type1; name=\"$filename\"");
//header("Content-Type: application/x-msdownload; name=\"$filename\"");
//header("Content-Type: application/octet-stream; name=\"$filename\"");
} else {
header("Content-Disposition: attachment; filename=\"$filename\"");
// application/octet-stream forces download for Netscape
header("Content-Type: application/octet-stream; name=\"$filename\"");
}
}
echo "Title, First Name, Last Name, Suffix, Address, City, State, Zip, Club, New Card, Comments,\n";
while ($myrow = mysql_fetch_array($result2)) {
$sql = "SELECT * FROM table WHERE id = '$myrow[id]'";
$result = mysql_query($sql);
$clubName = mysql_fetch_array($result);
$club = $clubName[club_name];
if ($myrow[new_card] == "1") {
$new_card = "Yes";
} else {
$new_card = "No";
}
echo "$myrow[title], $myrow[first], $myrow[last], $myrow[suffix], $myrow[address], $myrow[city], $myrow[state], $myrow[zip], $club, $new_card, $myrow[comments],\n";
}
exit;
}