Mise à jour PHP sur Oxyweb

20.03.2009 0

elePHPant
Crédit photo: Sebastian Bergmann

Les serveurs d’hébergement viennent d’être mis à jour en version 5.2.8-pl2-gentoo. J’en ai profité pour enlever quelques options de compilation inutilisées et j’ai réalisé un bench before / after. Voilà le résultat (1000 affichages de php-v et 1000 affichages de phpinfo):

Précédente version de PHP:
php -v time : 14
phpinfo()  time : 17

Version à jour avec nettoyage des use flags:
php -v time : 11
phpinfo()  time : 12

C’est toujours ça de gagné.

Interface d’envoi et de consultation de fichiers en Flash/PHP/MySQL/jQuery

12.01.2009 0

Développé pour la société CRIFI SA, cette interface permet à des utilisateurs d’un site distant d’envoyer des fichiers massifs (jusqu’à 100Mo) à travers leur connexion internet, pour être ensuite utilisés par une autre équipe sur un site différent.

Plusieurs niveaux d’utilisateurs sont disponibles pour l’envoi, la consultation et la suppression des fichiers.

J’ai utilisé un thème (comme toujours :) ) de themeforest disponible ici et les plugins pour jQuery jgrowl et tooltip. L’envoi des fichiers se fait en utilisant swfupload (j’y reviendrai dans un autre billet), qui est en fait une interface flash qui se charge d’envoyer les fichiers à un script php en backend, permettant ainsi d’avoir une progress-bar tout au long de l’envoi.

L’encodage des paramètres dans les urls

04.12.2008 1

Après plusieurs années de développement, on en apprend toujours, et c’est ca qui fait plaisir dans ce métier. Bien que parfois, il y a des surprises dont on pourrait se passer …

En voici une justement qui m’est arrivée pas plus tard que tout à l’heure: pour un site fraîchement mis en production, un fournisseur veut envoyer une emailing contenant une invitation à jouer pré-remplie avec nom et prénom. Jusque là, rien de sorcier. Sauf qu’au lieu d’encoder correctement l’url, le prénom et le nom de famille des joueurs est transmis tel quel dans un bon vieux « nom=tonton&prenom=rené »

Au sein de mon formulaire d’inscription, je récupère et j’affiche ces valeurs avec un ptit urldecode (inutile dans ce cas là of course) et un html_entities avec charset réglé en UTF-8

Sur certains browser, » tonton rené » devient « tonton ren » suivi d’un carré ou d’un @ selon les cas. Mais uniquement sur PC ! Sous macosx, tout va bien …

Safari et FF version Macosx considèrent donc que les paramètres de l’url sont encodés en UTF8, mais IE6 et FF sous Windows considèrent qu’il s’agit d’ISO. La solution est alors de tester l’encodage des paramètres passés dans l’url et d’utf8_encoder tout ce petit monde s’il ne s’agit pas déjà d’utf8

Au passage, voilà une fonction trouvée sur php.net qui permet de tester ce genre de chose:

function is_utf8($string) {
// From http://w3.org/International/questions/qa-forms-utf-8.html
return preg_match('%^(?:
[x09x0Ax0Dx20-x7E] # ASCII
| [xC2-xDF][x80-xBF] # non-overlong 2-byte
| xE0[xA0-xBF][x80-xBF] # excluding overlongs
| [xE1-xECxEExEF][x80-xBF]{2} # straight 3-byte
| xED[x80-x9F][x80-xBF] # excluding surrogates
| xF0[x90-xBF][x80-xBF]{2} # planes 1-3
| [xF1-xF3][x80-xBF]{3} # planes 4-15
| xF4[x80-x8F][x80-xBF]{2} # plane 16
)*$%xs', $string);
}

Et voilà encore du boulot qui aurait pu être évité si les fournisseurs extérieurs développaient correctement leur business…

Mise à jour PHP sur Oxyweb

16.11.2008 0

Suite à la publication d’une faille de sécurité dans PHP, je viens de mettre à jour le serveur d’hébergement mutualisé. La version actuelle est la 5.2.6-pl7-gentoo