Mes impressions sur le web, les standards et autres…


Samedi 14 février 2004

Misérable feature

RHAAAA !!!

Mhrr (<- raclement de gorge). Bon, je vous fais un topo. J’étais tranquillement en train de scripter un petit truc. Appel sur un serveur distant pour récupérer les en-têtes renvoyés ainsi que les données (Je précise pour la compréhension de la suite du billet que l’URI appellée renvoie une image PNG…). Précisément, je n’étais pas sùr du fonctionnement précis du deuxième argument de la fonction explode() de PHP (pour séparer les en-têtes des données propres dans la chaîne de caractères reçue). Ainsi :

// appel sur le serveur etc...

$data = '';
while( !@feof($fsock) )
{
    $data .= @fread($fsock, 512);
}
fclose($fsock);

list($headers, $data) = explode("\n\n", str_replace("\r\n", "\n", $data), 3);
list($response) = explode("\n", $headers, 2);

header('Content-Type: text/plain; charset=ISO-8859-1');
echo $headers;
echo "\n\n-----------------\n\n";
echo $data;
echo "\n\n-----------------\n\n";
echo $response;

Ainsi fait, je teste sous Firebird pour voir ce que contiennent mes variables. Voila t-y pas que Firebird me propose de télécharger le fichier ?! Éberlué, je reteste plusieurs fois, et encore et encore (comme un forcené cette fois) avant de me rappeller de la magnifique et indispensable fonctionnalité ajoutée dans les nocturnes précédent la version 0.8 (au jugé fin décembre). Merci mais non merci, j’en veux pas de cette fonctionnalité. Elle me casse les bu^Wnoisettes plus qu’autre chose cette fonctionnalité, bien que je sois conscient qu’elle ait une certaine utilité auprès de l’utilisateur lambda (merci au passage aux crétins qui sont pas fichus de configurer proprement leurs serveurs).

Bien, pour en venir au cœur de ce billet, quelqu’un dans l’assistance saurait-il par bonheur quelle option de configuration dois-je modifier dans mon firebird chéri (qui ne le restera pas s’il n’y a pas de solution) pour qu’il cesse ce comportement des plus agaçants ? Merci d’avance.

Au fait, ça va vous ? Je vous rassure, je ne suis pas mort, juste en manque d’inspiration et de temps ;-)

Bon, j’ai trouvé une première solution pour contourner ce problème. Utiliser plutôt :

header('Content-Type: text/plain; charset=ISO-8859-15');

Au lieu de cette ligne (avec ou sans le charset) :

header('Content-Type: text/plain; charset=ISO-8859-1');

Apparamment, Firefox prend des libertés uniquement si l’en-tête content-type correspond exactement aux réglages par défaut de la plupart des serveurs. Il me manque toujours la solution ultime qui désactive vraiment cette fonctionnalité dans Firefox

Publié à 2h17

Catégorie :

Vos réactions, opinions, insultes…

Rétroliens

Faire un rétrolien sur ce billet : [xxxxxxxx]

Commentaires

Auteur : maurizSite#1

Si j'ai bien compris le problème vient du fait que Firefox télécharge un fichier envoyé avec le type text/plain ?

14 février 2004 à 2h34
Auteur : Bobe#2

Oui, cela vient du fait que certains serveurs envoient les données avec le type mime text/plain à défaut d'autre chose. (les .rar par exemple des fois)
Ils ont donc implémenté cette fonctionnalité qui, dans le cas de données envoyées sous text/plain, part du principe que ce type est utilisé par défaut et vérifie si les données envoyées ne seraient pas peut-être autre chose que du texte simple.

Dans ce cas précis, une partie des données que je veux afficher est la chaîne représentant l'image elle même. (précisément, je veux vérifier ce que contient exactement la variable $data…)

14 février 2004 à 2h43
Auteur : Darken • Site#3

Je te propose de faire une conversion pour les caractères non valides. Tu les remplaces par un autre caractère valide comme ? ou . et ça devrait aller. Les afficheurs/éditeurs hexadécimal utilisent souvent cette technique.

14 février 2004 à 7h41
Auteur : Bobe#4

Ça ferait peut-être un peu long, et surtout ça ne fait que contourner assez lourdement le problème de départ :/

M’enfin il doit bien exister un booléen à modifier dans about:config quand même ?

16 février 2004 à 4h19
Auteur : XanthorSite#5

"There is no such option. I would rather implement a "view in browser" option on the helper app dialog (which we need to do anyway) than waste time on a pref for this."
(Extrait du bug en question : http://bugzilla.mozilla.org/show_bug.(…) )

C'est pénible, moi aussi je souhaiterai eviter ce comportement contraire aux normes ;¬)

24 février 2004 à 20h18
Auteur : Bobe#6

Rha, je m’insurge contre cette disgression intolérable par rapport aux normes ;-)
Bon bah tant pis, je vais devoir patienter jusqu’à qu’ils fassent quelque chose à ce niveau-là (j’en reviens toujours pas que ce comportement ne soit pas modifiable).

1 mars 2004 à 19h26
Un ch’tit biscuit ?
  • Les champs email et site sont facultatifs
  • Les URLs commençant par [protocole]://[protocole] correspond à http, https, news, irc, ftp, … sont rendues activables automatiquement. Votre adresse email ainsi que d’éventuelles adresses email présentes dans le corps du commentaire sont également rendues activables et encodées pour tromper les aspirateurs d’adresse email.
  • Pour spécifier une URL locale au site, vous pouvez utiliser local comme protocole à mettre à la place de http et omettre le nom de domaine dans l’URL.
    Exemple : local://2005/08/22/Nom-de-billet/.
  • Usez et abusez de la possibilité de prévisualiser votre commentaire pour vérifier qu’il est correctement rédigé et contient le moins possible de fautes d’orthographe. Évitez en outre le style SMS, merci d’avance. Prévisualiser votre commentaire peut également vous permettre de voir si de nouveaux commentaires sont apparus entre temps.
  • Si vous spécifiez l’adresse de votre site dans le champs texte prévu à cet effet, le script se chargera automatiquement d’aller récupérer sur votre site la langue utilisée dans vos pages, soit via l’en-tête HTTP Content-Language, soit en récupérant le contenu de l’attribut xml:lang ou lang sur l’élément html. Vous n’avez indiqué d’aucune façon la langue utilisée dans vos pages ? Corrigez ça nom di diou !
  • Des options de mise en forme des commentaires feront peut-être un jour leur apparition.


Site créé et maintenu par Aurélien Maille aka Bobe. Toutes les heures sont au format CEST.
Revenir à l’accueil – Zone de développement – Informations et accessibilité – CC licensed CC Licensed