SQLPAC ?

SQLPAC est un site francophone pour francophones consacré aux Systèmes de Gestion de Bases de Données (SGBD) transactionnels et décisionnels.

Sybase Sybase
MS SQL MS SQL Server
Oracle Oracle
MySQL MySQL

En savoir plus ...

Contributeurs et auteurs

Tendances mensuelles

Annonces

Accueil  Archives 2016

À la une de SQLPAC en 2016

Migration automatisée d'un site Web (HTML, PHP, CSS, JS...) de l'encodage ISO-8859-1 vers l'Unicode UTF-8 avec Python 3

Posté le 22/09/2016 pythonUn site Web en entier (fichiers html, php, css, javascript...) à migrer de l'encodage Latin 1 / ISO-8859-1 vers l'Unicode UTF-8 car au fil de l'évolution des technologies (PHP 5.4 et versions supérieures, services de partage AddThis...), des incompatibilités surgissent.

Mais comment automatiser celle-ci quand plus de 500 fichiers sont concernés ?

Le langage Python et son package io sont capables en quelques lignes d'automatiser la migration d'un site en entier vers UTF-8, programme python qui est proposé dans cet article. Le package chardet de Python est bien capable de détecter les encodages de fichiers toutefois il est plus fiable d'utiliser la commande file et de donner ses résultats au programme Python en charge de la migration. Dans un environnement Windows de développement, aucun souci pour utiliser la commande file, la plateforme légère MinGW (Minimalist GNU for Windows) propose tous les utilitaires indispensables dont l'utilitaire file.

Après la migration des fichiers, quelques opérations post migration sont nécessaires, comme le remplacement dans les balises meta des pages HTML de l'encodage ISO-8859-1 par UTF-8, ce qui peut être également automatisé par un script shell sous MingW. La modification de l'encodage vers UTF-8 doit éventuellement être réalisée au niveau global pour PHP et les connexions aux bases de données (MySQL dans ce cas pratique).

Migration automatisée d'un site Web (HTML, PHP, CSS, JS...) de l'encodage ISO-8859-1 vers l'Unicode UTF-8 avec Python 3 »

Distribution de données inter domaines avec JSONP, cas pratiques (AddThis...)

Posté le 21/09/2016 jsonInterroger et manipuler des données JSON avec Javascript et XMLHttpRequest est facile et séduisant.

Lorsqu'il s'agit de requêtes de données au format JSON dans un contexte inter domaines (cross domains), la méthode est bien différente : JSONP (JSON Padding) doit être utilisé. Les données JSON sont chargées comme s'il s'agissait d'un script Javascript, l'adresse URL doit simplement contenir le paramètre callback indiquant la fonction de rappel lorsque les données sont reçues.

Voici un cas pratique avec la récupération au format JSON de la liste des articles tendance (trending content) depuis le service AddThis.com.

Distribution de données inter domaines avec JSONP, cas pratiques (AddThis...) »

Automatiser l'ouverture des liens hypertextes dans un nouvel onglet avec Javascript et l'attribut rel external

Posté le 20/09/2016 javascriptUn exemple hypra basique avec la fonction rebuild_href proposée dans cet article pour industrialiser l'ouverture de liens hypertextes externes dans un nouvel onglet grâce à Javascript et l'attribut natif rel="external". Plus aucun lien hypertexte n'échappera à la règle.

Automatiser l'ouverture des liens hypertextes dans un nouvel onglet avec Javascript et l'attribut rel external »

Fonction générique de chargement de données JSON avec Javascript. Gestion du cache du client et du mode synchrone et asynchrone

Posté le 19/09/2016 jsonLa lourdeur du langage XML n'a pas toujours convaincu (syntaxes et méthodes), en revanche essayer JSON (JavaScript Object Notation), c'est l'adopter. Les données d'un fichier JSON sont facilement lisibles et modifiables que ce soit humainement ou par des API (PHP, Python...).

Une fonction générique en Javascript pour charger les données des fichiers JSON, wsys_load_json, est proposée ici. La problèmatique du cache des navigateurs pour les fichiers JSON est abordée avec 2 solutions : le module mod_expires d'Apache ou l'application d'une empreinte dans l'adresse URL du fichier JSON.

Il est important aussi de prêter attention à l'exécution synchrone ou asynchrone du chargement des données JSON afin d'éviter certains pièges dans les développements. Un cas concret illustre ce sujet.

Fonction générique de chargement de données JSON avec Javascript. Gestion du cache du client et du mode synchrone et asynchrone »

Développer une fonction générique de chargement dynamique de librairies Javascript (callback, attributs..)

Posté le 16/09/2016 javascriptLe sujet n'est pas nouveau, et encore moins révolutionnaire : pour simplifier l'ajout dynamique de librairies javascript (Google +1, MathJax, HighlightJS...) avec des options très diverses pour chacune d'elles (attributs id async defer, fonctions de rappel ou fonctions callback, nœud texte...), une fonction générique en pur Javascript (sans jQuery) peut tout prendre en charge.

En voici une, wsys_load_js, elle est loin d'être parfaite et ne respecte peut être pas l'excellence du codage en Javascript mais elle est à l'ouvrage ici et si ça peut aider quelqu'un, alors l'objectif de ce petit article est atteint.

Internet Explorer 8 et ses incompatibilités avec les standards Javascript (addEventListener, appendChild d'un nœud texte sur un objet script) est encore supporté dans la fonction proposée car étrangement, malgré la fin de Windows XP, 5% des visiteurs sur ce site utilisent encore cette version en septembre 2016. En juin 2017, le support d'IE 8 devrait être retiré.

Développer une fonction générique de chargement dynamique de librairies Javascript (callback, attributs..) »

Concevoir un formulaire HTML anti spam sans Captcha

Posté le 15/09/2016 htmlSans avoir recours à des techniques comme Captcha, un formulaire peut être élaboré très simplement en HTML et Javascript afin d'être efficace contre les robots de spam (nos amis les spambots).

Un simple champ avec des caractéristiques et attributs bien précis dans le formulaire permet de trahir les robots de spam en les invitant très fortement à saisir des données dans ce champ.

La création dynamique du formulaire en javascript après le chargement de la page est également un solution pour le dissimuler aux robots.

Des techniques simples mais le résultat est sans appel : plus aucun spam depuis leur mise en place !

Concevoir un formulaire HTML anti spam sans Captcha »

Expressions et équations mathématiques en HTML avec MathJax et AsciiMath

Posté le 14/09/2016 mathjaxMathML pour l'écriture d'expressions mathématiques en HTML n'est pas devenu un standard avec HTML 5. Google Chrome ne supporte pas ce langage avec l'argument de l'existence de puissantes librairies en Javascript pour répondre à ce besoin d'un public de scientifiques assez limité.

Effectivement la librairie javascript MathJax couplée à AsciiMath est parfaite lorsqu'on désire écrire en HTML des expressions pour un rendu professionnel et ergonomique et afin de ne pas utiliser des images ou des expressions brutes de fonderie illisibles notamment lorsqu'il y a des fractions.

Cet article n'est pas un tutoriel sur MathJax, il présente des cas simples et surtout comment charger dynamiquement la librairie MathJax.js en cas de besoin dans un fichier HTML grâce aux classes CSS et Javascript.

En bonus, quelques mots sur le caractère underscore dans les expressions AsciiMath, le changement de délimiteur (backtick par défaut) et le menu MathJax disponible sur les expressions pour réaliser rapidement un copier coller.

Expressions et équations mathématiques en HTML avec MathJax et AsciiMath »

Validation W3C en mode batch de fichiers HTML avec Nu HTML Checker

Posté le 12/09/2016 htmlNu HTML Checker (Nvu), un outil écrit en Java indispensable pour valider en masse des fichiers HTML afin de produire du code de qualité qui garantit les performances et ne perturbe pas Javascript si des balises sont mal formées. Son usage et surtout sa syntaxe sont simples.

Les résultats sont facilement exploitables et en combinaison avec findstr, les erreurs dûes à la présence de code PHP ou au format HTML 4 du document sont écartées.

Validation W3C en mode batch de fichiers HTML avec Nu HTML Checker »

© 2010, SQLPAC - v 3.1. © Adaptive Framework for PHP version 3.5.0