Maxime Rastello

WordPress n’aime pas Internet Explorer 8

WordPress n’aime pas Internet Explorer 8 ! Ou du moins WordPress n’aime pas les utilisateurs d’un navigateur qui a un nom plutôt long et qui ont installé plein de petits logiciels Microsoft !

Je m’explique. Lorsque vous postez un commentaire par exemple, WordPress en profite pour récolter et stocker dans sa base de données des informations sur l’auteur. Et c’est là où les ennuis commencent. Pour la plupart des utilisateurs, l’écriture de commentaires se passera très bien mais chez d’autres, une erreur apparaitra :

WordPress Data too long for column ‘comment_agent’ at row 1

 

Voici pour ma part les informations collectées par WordPress sous Internet Explorer 8 :

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; InfoPath.2; MS-RTC LM 8; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618)

Et voila celles collectées pour le même commentaire par Firefox :

Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.5 MEGAUPLOAD 1.0 (.NET CLR 3.5.30729)

La différence de taille est flagrante, la description d’Internet Explorer 8 est beaucoup trop plus détaillée. Allons maintenant du côté de la base de données WordPress. Dans la table « wp_comments » où sont stockés les commentaires, on peut voir que le champ « comment_agent » dédié à l’enregistrement des informations est de type VARCHAR(255), c’est à dire pour les noobs une chaine de caractères variant de 0 à 255 caractères. Or, les 255 caractères sont allégrement dépassés dans le cas de l’enregistrement des infos transmises par IE.

erreur-mysql-wordpress

 

Alors mauvais codage de la part de WordPress lors de la création de la base de données ou trop d’informations envoyées par Microsoft ? Je vois déjà les trolls apparaitre !

Pour remédier au problème et pouvoir enfin recevoir des commentaires de visiteurs sous IE, il suffit d’aller dans la structure de votre table et de changer le type en TEXT par exemple

base-donnee-commentaire-wordpress

 

PS : cette astuce est à étendre à toutes les fonctions de log se basant sur un varchar de 255 ^^