Creando y descargando CSV con PHP

Estoy usando PHP para crear un archivo CSV a partir de una consulta de base de datos. Ejecuto la consulta, establezco los encabezados y cargo la página en Firefox y el archivo pide ayuda para descargar y se abre en Excel como se supone que debe hacerlo. Cuando lo bash en IE, aparece un error que dice que Internet Explorer cannot download ReportPrint.php from www.website.com.
Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.
Internet Explorer cannot download ReportPrint.php from www.website.com.
Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.

No estoy seguro de qué se puede hacer para solucionar esto.

 header('Content-Description: File Transfer'); header("Content-Type: application/csv") ; header("Content-Disposition: attachment; filename=Report.csv"); header("Pragma: no-cache"); header("Expires: 0"); echo "record1,record2,record3\n"; 

Elimine el encabezado Pragma: no-cache . Este encabezado evita que IE descargue el archivo.

Internet Explorer tiende a mostrar estos mensajes de error cuando no es capaz de almacenar en caché el archivo y parece que intenta evitar el almacenamiento en caché. Pruebe en cambio algo como esto:

 < ?php $seconds = 30; header('Expires: ' . gmdate('D, d MYH:i:s', time()+$seconds) . ' GMT'); header('Cache-Control: max-age=' . $seconds . ', s-maxage=' . $seconds . ', must-revalidate, proxy-revalidate'); session_cache_limiter(FALSE); // Disable session_start() caching headers if( session_id() ){ // Remove Pragma: no-cache generated by session_start() if( function_exists('header_remove') ){ header_remove('Pragma'); }else{ header('Pragma:'); } } ?> 

Ajuste $seconds a su gusto, pero no lo ajuste a cero.

También ayuda utilizar mod_rewrite para hacer que IE crea que la descarga es un archivo estático, por ejemplo, http://example.com/Report.csv

Por favor, informe y diga si funciona para usted.

Compruebe la configuración de seguridad de IE, puede estar configurado para no descargar archivos CSV.

Cambio

 header("Content-Disposition: attachment; filename=Report.csv"); 

a

 header("Content-Disposition: attachment;filename=Report.csv");