5 erreurs de base sur l'utilisabilité que vous devriez éviter

L'article du jour nous viens du blog Echoenduring, sur l'utilisabilité (il n'y a pas réellement de traduction pour "Usability").

Le post dresse une liste de 5 points à éviter lorsque vous réalisez des sites webs. Certains sont évidents, d'autres moins, et c'est toujours bon de faire un petit rappel !

  1. Devinez ou le menu se cache ?
  2. Menu déroulant non fonctionnels.
  3. Page de contact introuvables
  4. Pas de Favicon ou de titre
  5. Navigation possible uniquement via le fil d'Ariane (Breadcrumb)

Filed under  //  Development   breakdown   contact   eviter   favicon   liste   menu   navigation   page   points  
Posted by Cyril Nicodème 

Affichez vos emails tout en évitant le spam !

Le site techblog.tilllate.com a testé durant plus d'un an différents moyens d'affichage d'email et leur résistance au spam. Il s'est avéré qu'au final, trois méthodes employées se sont avérées plutôt efficaces.

Pour ce faire, 9 différentes méthodes ont été testées :

  • Changement du sens de lecture en Css
  • Affichage altéré (display:none sur des parties n'existant pas dans l'email)
  • Chiffrement ROT-13 (Rotation de 13 lettres dans l'alphabet)
  • Utilisation des ATs et DOTs
  • Génération de l'email avec Javascript
  • Remplacement des @ et . avec les entitées correspondantes
  • Découpage de l'email avec des commentaires html
  • Utilisation de la fonction urlencode
  • Texte pure

Sur ces 9 tests, seulement les trois premiers ont été convainquants à 100%.

Pour vous donner une idée, voici une image résultant du test :

Pour information, voici comment mettre au point ces 3 meilleures méthodes :

  1. Changement du sens de lecture Css :
    <style type="text/css>
    span.codedirection { unicode-bidi:bidi-override; direction: rtl; }
    </style>
    <span class="codedirection">moc.elpmaxe@liamekaf</span>
  2. Affichage altéré (display:none) :
    <style type="text/css>
    p span.displaynone { display:none; }
    </style>
    fakemailnull@example.com
  3. Chiffrement Rot13 : Vous pouvez trouver un outil de chiffrement Rot-13 ici, ou utiliser la méthode str_rot13 de PHP.
    <script type="text/javascript">
    document.write("

Filed under  //  Css   Development   Javascript   Projects   eviter   obfuscate   proteger   spam  
Posted by Cyril Nicodème 

Optimisation PHP

On parle très souvent de l'optimisation de code PHP, mais dans le concret, on se rend très vite compte que tous les conseils ne sont pas appliqués. Après la publication d'un article en anglais, sur 12 astuces d'optimisations PHP, je vais ici traduire ces astuces et indiquer les autres qui me semblent indispensables.

  1. Préférez les méthodes statiques. La rapidité d'exécution du code PHP est multiplié par 4 !
  2. Évitez autant que vous pouvez l'utilisation des méthodes magiques (__get, __set, etc)
  3. Require_once est plus lourd que require (logique puisqu'il va vérifier que le fichier n'à pas déjà été chargé !)
  4. Préférez l'utilisation des chemins absolus, qui évitent au moteur PHP de résoudre le chemin par le biais du système (utilisez $_SERVER ['DOCUMENT_ROOT'])
  5. Pour avoir le temps en secondes, préférez $_SERVER['REQUEST_TIME'] à time (). En effet, time () demande un temps de calcul à PHP alors que $_SERVER['REQUEST_TIME'] est déjà calculé !
  6. Evitez au maximum l'utilisation des expressions régulières (utilisation des fonctions strncasecmp, strpbrk et stripos)
  7. str_replace est plus rapide que preg_replace, mais strtr est 4 fois plus rapide que str_replace ... !!
  8. Preferez le passage de paramètre à des fonctions en String plutôt que Array, ce qui évitera un temps de traitement supplémentaire pour le parcours du tableau !
  9. L'utilisation du @ pour ne pas afficher les erreurs ralentit considérablement le traitement.
  10. $row['id'] est 7 fois plus rapide que $row[id] !!!
  11. Les messages d'erreurs ralentissent votre code ! Normal puisqu'ils sont (peuvent) être écrit dans le fichier de log, affichés, etc
  12. Essayez au maximum de sortir les fonctions telles que count, sizeof, ... des boucles. Car ces fonctions sont appelées à chaque itérations, ce qui alourdit considérablement le traitement !
  13. Préférez l'usage des simples quotes plutôt que des doubles quotes. Les doubles quotes sont parsées, tandis que les simples quotes non ! (le $ est affiché et n'est pas traité en tant que variable !)
  14. Évitez au maximum la redondance de code, en utilisant des classes ou des fonctions. Cela permet aussi une maintenance et une pérennité de votre code, puisqu'il suffira ensuite de modifier qu'à un seul endroit, au lieu de parcourir tous vos fichiers !
  15. Préférez l'utilisation des fonctions preg_* au lieu de ereg_* qui sont maintenant dépréciée !
  16. Préférez l'utilisation de
    if (!isset ($myvar{5}))
            echo $myvar.' is too short';
    au lieu de
    if (strlen ($myvar)
    Isset n'est pas une fonction mais une structure du langage, qui est donc beaucoup plus rapide !
  17. Préferez l'usage de ++$i plutot que $i++, qui est plus rapide (s'applique uniquement à PHP !)
  18. echo est plus rapide que print tout simplement car print retourne un état de succès tandis que echo ne fait qu'afficher.
  19. Tout ce qui n'est pas du PHP doit être en dehors des ?><?php ! Eviter les longs echo '<html>....'; qui seront plus long à parser que des ?><html>... !!!
  20. Préférez l'utilisation de la librairie ctype (activée par défaut depuis PHP 4.2.0) plutôt que des expressions régulières pour valider des entrées utilisateurs simple (tel que des nombres, des chaines, etc). Jetez un oeil à la librairie ctype sur php.net
  21. true est plus rapide que TRUE (sisi c'est vrai ! :p). Pourquoi ? parce que dans la structure de langage de PHP, la valeur booléenne est true. Si vous mettez TRUE, PHP va déjà vérifier si ce n'est pas une constante. C'est donc une perte de temps.
  22. 1 est plus rapide que true (et inversement 0 est plus rapide que false). Et comme PHP n'est pas typé ...
  23. Préferez if (42 == $value) plutot que ($value == 42). Ce ne sera pas plus rapide, mais vous obtiendrez une erreur si vous omettez un égal ! (42 = $value vous retournera une erreur. $value = 42 ne fera qu'assiger 42 à la variable $value, et vous comprendrez pas pourquoi votre code ne fonctionne pas :p)
  24. Il est préférable d'utiliser :
    $myArray = array ('banane' => 0, 'pomme' => 1, 'orange' => 2); 
    if (isset ($myArray[$fruits])) {
            echo $fruits.' exist';
    }
    plutot que
    $myArray = array ('banane', 'pomme', 'orange');
    if (array_exists ($myArray, $fruits)) {
            echo $fruits.' exists';
    }
  25. De plus gros blocs de code php augmentent la rapidité du script plutôt que des <?php .. ?> à chaque lignes
  26. Si vous utilisez echo, la concaténation est plus rapide avec des virgules qu'avec des points !!
    echo 'Bonjour Mr',$sName,', vous avez ',$iMsg,' message(s)'
  27. Utiliser au maximum unset, afin de libérer le plus de mémoire possible
  28. Essayer au maximum de génerer des pages html statiques une fois le contenu mis à jour, afin d'éviter un traitement à chaque affichage !

Toutes ces méthodes vous permettront d'avoir un code performant, ce qui aura pour conséquence d'améliorer la rapidité de rendu de vos pages en cas de forte consultation.

Filed under  //  Development   Php   cache   conseil   eviter   optimisation   préférable   quote   rapidity   rendu  
Posted by Cyril Nicodème