Exporter fichier .csv d'une base sql, problème avec IE [Résolu]

Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006
- - Dernière réponse : Dyr3e
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006
- 20 juin 2005 à 11:27
bonjour,

j'utilise un script pour pouvoir exporter des fichiers au format csv (je l'ai trouvé grace a phpcs.com :) ) mais j'obtient un message sous IE indiquant que le site distant ne peut être joint, bref impossible de télécharger ce fichier. Sous Firefox, aucun problème ... aurais-je omis quelquechose pour ne pas froisser cet être chère qu'est IE ?

le code:

// Selection de la table
$r = mysql_query("SELECT * FROM table");


if(mysql_num_rows($r) == 0) echo "cette table est vide";
else
{
// Injection des headers
header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: filename=table.csv");


// affichage du titre des colonnes for($i 0; $i < mysql_num_fields($r); $i++) $t[$i] mysql_field_name($r, $i);
echo '"',implode("";"",$t),""\n";


// affichage des données de la table
while($d = mysql_fetch_assoc($r))
echo '"',implode("";"",$d),""\n";
}

merci d'avance,
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006
3
Merci
c'est bon !

les header à utiliser étaient

header("Cache-control: private");
header("Content-Type: application/csv");
header("Content-Disposition: attachment; filename=table.csv");

dans ce cas la plus de problème avec IE :)

merci beaucoup de ton aide Malalam

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 142 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Dyr3e
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Hello,



header("Content-disposition: filename=table.csv");

=>

header("Content-disposition: filename='table.csv'");

Ce serait sans doute mieux.
Commenter la réponse de malalam
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006
0
Merci
merci pour cette précision :)

malheureusement ce n'est pas sur ce point que IE semble m'en vouloir. je ne vois vraiment pas. Au moins maintenant le code est plus propre.
Commenter la réponse de Dyr3e
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Je ne pense pas que IE t'en veuille sur ce bout de script, a vrai dire.
Mais plutot sur celui de la page precedente, non ?
Commenter la réponse de malalam
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006
0
Merci
hélas non,

j'ai crée un fichier test en php ne contenant que ce script...
si j'enlève les Header, ca fonctionne et il m'affiche a l'ecran le resultat de ma requête ( un peu inutile je te l'accorde :) ) mais dès que les Header sont en place, seul Firefox semble y comprendre quelquechose.

Cordialement,

Dyree
Commenter la réponse de Dyr3e
Messages postés
10844
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17
0
Merci
Essaye d'ajouter celui-ci :
<!--StartFragment -->header('Pragma: public');

Et tu es sur du content-type ?
Commenter la réponse de malalam
Messages postés
85
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
4 juillet 2006
0
Merci
d'après http://fr.php.net/header, les header sous IE devraient plutôt se déclarer de la sorte:

header('Content-Type: application/csv-tab-delimited-table');
header('Content-disposition: filename="table.csv"');

s'était juste pour la précision, cela n'a rien résolu
Commenter la réponse de Dyr3e