RSS
people

Combien de balises HTML en 5 minutes ?

En naviguant sur la toile mondiale, je suis tombé par hasard sur un test des plus sympathiques pour tout développeur Web. Celui-ci consiste à citer un maximum de balises HTML 4 en 5 minutes. Et vous ? Arriverez-vous à battre mon record ?

A noter qu’après avoir visualisé la solution, j’aurais pu en redonner 12 supplémentaires, auxquelles je n’ai pas pensé. Le stress ? Peut-être un peu. Mais aussi surtout le fait que penser à des balises sans en avoir besoin n’est pas forcément évident. ;)

Aucune réaction |

Javascript : valider un formulaire avec entrée

Parfois, il peut-être utile d’envoyer un formulaire en appuyant sur la touche Enter. Cela est d’autant plus vrai que cela n’est pas tout le temps géré automatiquement. Par exemple, un formulaire sans bouton submit. Comment alors exécuter une action à la saisie de la touche Enter ?

Un peu de Javascript et de gestion des évènements nous y aidera. Tout d’abord, définissons une fonction.

function onEnterPress(event, button)
{
     var enterPressed = (event.which && event.which == 13);
     enterPressed |= (event.keyCode && event.keyCode == 13);
 
     if(enterPressed)    button.click();
}

Il est important de gérer les propriétés event.which et event.keyCode dans un but de compatibilité maximale. De même, on spécifie l’évènement dans les paramètres, afin de ne pas oublier les navigateurs n’ayant pas de gestionnaire global d’évènements.

On appelle alors cette fonction très simplement. Exemple :

<input type="text" onkeypressed="onEnterPressed(event, btnOK);" />
<button id="btnOK" onclick="alert(’It works !’);">
          OK
</button>
       
<script type="text/javascript">
     var btnOK = document.getElementById(’btnOK’);
</script>

Il ne vous reste plus qu’à l’implémenter sur tous vos formulaires. A vos claviers ! Prêt ? Go !

Aucune réaction | Tags : ,

Activer mod_rewrite pour Apache sous Ubuntu

Le module mod_rewrite permettant la réecriture d’URL est très utile. Il représente la solution du webmaster pour améliorer son référencement. Ce module d’Apache est très facilement ajoutable sous Ubuntu.

On supposera que votre serveur Web est correctement installé via le système de paquets (aptitude). Cette installation comprend en effet par défaut le fameux module. Il ne vous reste qu’à l’activer pour en profiter.

# a2enmod rewrite

Cependant, il est important de spécifier dans la configuration de votre hôte virtuel l’écrasement de vos paramètres .htaccess. On édite donc le fichier /etc/apache2/sites-available/default. On remplace alors la partie :

<Directory {votre_dossier_web}>
Options FollowSymLinks
AllowOverride None
</Directory>

Par :

<Directory {votre_dossier_web}>
Options FollowSymLinks
AllowOverride all
</Directory>

On redémarre alors notre serveur Apache afin de prendre en compte les dernières modifications :

# /etc/init.d/apache2 restart

Et voilà. Vous pouvez tester vos pages à l’URL réecrite. Pour toute question, n’hésitez pas à demander. Les commentaires sont à votre disposition. ;)

Aucune réaction | Tags : ,

Import et export de bases de données MySQL

Logo MySQLTout développeur Web a été confronté au problème d’exportation et d’importation de bases de données volumineuses. En effet, PHPMyAdmin est certes très efficace pour la gestion des données ou la création de tables, mais se retrouve très fortement limité pour tout ce qui est sauvegarde des données. Voyons donc les deux commandes très simples et pourtant vitales de l’administrateur MySQL.

Nous allons, pour ce faire, passer par la ligne de commande. Tout d’abord, récupérons la base de données jonathan-petitcolas en se connectant grâce au nom d’utilisateur geek (argument -u). Ce dernier devant saisir son mot de passe, on spécifie l’argument -p afin de le saisir de manière interactive. Enfin, on sauvegarde le résultat dans un fichier jonathan-petitcolas.sql grâce à l’opérateur très classique de redirection de flux.

mysqldump -u geek -p jonathan-petitcolas > jonathan-petitcolas.sql

Une fois ce fichier de sauvegarde récupéré, nous pouvons passer à l’importation. Celle-ci se fait très simplement, en passant le contenu du fichier sauvegardé en tant que commande SQL.

mysql -u geek -p jonathan-petitcolas < jonathan-petitcolas.sql

Remarque : il est important de créer la base de données concernées sur la machine sur laquelle sera effectuée l’importation, sous peine de vous récolter une erreur 1049.

Aucune réaction | Tags : ,

MySQL : taille des types entiers

En MySQL, nous pouvons spécifier différents types de colonnes (ENUM, chaîne de caractères, etc…). Nous nous intéresserons ici aux types entiers. Il en existe plusieurs. Nous verrons ici la différence entre tous ces types, ainsi que l’utilité souvent méconnue de l’attribut Taille.

Il existe 5 types d’entiers : le tinyint, le smallint, le mediumint, le int et le bigint. La différence entre ces différents types réside en leur encodage. Ils sont respectivement representés par 1, 2, 3, 4 et 8 octets.

Un entier codé sur 1 octet (soit 8 bits) peut prendre 28 = 256 valeurs possibles. Sachant que le signe est codé sur un bit, nous avons donc une plage de valeurs pour le TINYINT de -127 à +127 (soit 255 valeurs possibles, car le bit de poids faible porte le signe, et 20 = 1).

Au cas où nous indiquons un TINYINT non-signé, nous récupérons un octet. Ainsi, on dispose cette fois de toutes les valeurs possibles, de 0 à 255 (soit 256 valeurs).

Je vais mettre fin ici à une idée largement répandue, concernant le sens de l’attribut de taille. Pour les colonnes de type VARCHAR, cela est évident. Il s’agit de la longueur maximale de la chaîne. Cependant, pour les entiers, cela est un peu plus mystérieux. Non, ce n’est pas, comme beaucoup le pensent, le nombre de chiffres maximal que peut compter le nombre (un TINYINT(2) peut être 231, qui contient trois chiffres). Cette taille ne sert que si l’on utilise l’option ZEROFILL, qui permet de compléter avec des zéros jusqu’à obtenir la taille désirée.

Par exemple, considérons un champ SMALLINT(5) avec l’option ZEROFILL activée. Saisissons dans ce champ la valeur 12. Elle sera stockée sous la forme 00012. En revanche, si nous choisissons de saisir un BIGINT(4) de valeur 51461, alors il sera bien affiché 51461. Il n’y a en effet pas besoin de compléter avec des zéros supplémentaires. On dépasse déjà les quatre chiffres.

Petite remarque : 51461 est mon Campus ID, si certains ESIens survolent ce billet… ;)

Aucune réaction |