Tutoriaux

Vous avez un formulaire de contact en ligne ? Il vous est peut-être déjà arrivé d'être spammé par des soumissions de formulaire sans queue ni tête ou faisant de la publicité pour certains produits pharmaceutiques.

Vous utilisez peut-être déjà des techniques pour lutter contre le spam et, notamment, l'utilisation de captchas cependant vous vous rendez compte que ceux-ci semblent inefficaces. Ces formulaires sont généralement soumis automatiquement par des robots (spambots).

Il existe une technique assez simple à mettre en place pour bloquer ce genre de soumission. Il suffit de cacher un champ qu'un humain ne remplira pas lors de l'envoi du formulaire mais qu'un robot remplira à tous les coups. En validant le formulaire, il suffit de tester que ce champ est vide ce qui indique que le posteur est humain sinon on bloque l'envoi du formulaire. A l'heure actuelle, il semble que les robots ne détectent pas cette stratégie. Cette technique est intéressante parce qu'elle est efficace et ne pose aucun problème pour vos visiteurs. J'ai déjà eu de nombreux retours de personnes qui n'arrivaient pas à lire les captchas ou qui n'arrivaient pas à faire un simple calcul arithmétique...

Je vous propose de détailler ici comment mettre en place cette solution sur un site site sous Joomla avec un formulaire créé avec le composant ChronoForms.

Etape 1 - Ajouter un champ

Quand vous créez un formulaire avec ChronoForms, ajoutez un champ inutile de type "Text Box" :

chronoforms-create-textbox

Ici, j'ai créé un champ "Votre pseudo" dont l'id est username_123 (Voir copie d'écran ci-dessous). Ne pas toucher aux options de Validation.

Tutoriaux

La gestion de la mémoire allouée en PHP est une question redondante sur le web notamment lorsqu'il s'agit de manipuler des images. Cette question revient parce que les développeurs se sont déjà retrouvés face à ce message d'erreur "Fatal error: Out of memory (allocated xxx) (tried to allocate yyy bytes) in <path>".

Cette erreur se produit lorsque PHP n'arrive pas à allouer assez de mémoire pour un processus. Sur un serveur local, il est possible d'augmenter cette limite en changeant la valeur de l'option memory_limit dans le fichier php.ini. Lorsque vous êtes en hébergement mutualisé, ces options ne sont pas modifiables. Il faut soit passer à une offre supérieure (voire du dédié), soit subir cette contrainte, soit essayer d'améliorer vos scripts.

Dans de nombreux cas, il est possible d'optimiser vos scripts PHP pour mieux gérer la mémoire. C'est ce qu'il faudrait toujours faire en premier lieu!

Pour l'exemple des images, voici un petit script permettant de vérifier les quantités de mémoire disponible, utilisée, ... :

$basedir = "./";
$images = array('IMG_001.JPG', 'IMG_002.jpg', 'IMG_003.JPG');
foreach ($images as $a) {
	$infos = getimagesize($a);
	$width = $infos[0];
	$height = $infos[1];
	$bit = $infos['bits'];
	$channel = $infos['channels'];
	//en octets
	$m_used = memory_get_usage();
	//en Mo
	$mem_used = round($m_used / pow(1024,2),2).'M';			
	//calcul de mémoire utilisé pour le traitement de l'image
	$m_need = round(($width * $height * $bit * $channel / 8 + pow(2, 16)) * 1.65); 			
	//la memoire limite du server
	$m_limit = (integer) ini_get('memory_limit') * pow(1024, 2);			
	//la mémoire à allouer pour eviter la Fatal error
	$m_aloc = $m_need - $m_limit;
	$m_aloc += $m_used;//on ajoute la mémoire déjà utilisé
	//on convertit en Mo
	$memory = round($m_aloc / pow(1024,2),2);
	echo "taille: $width x $height px
nb de bits: $bit
canaux: $channel
"; echo 'Memoire utilisé par le script : '.$mem_used; echo 'Mémoire utilisée pour la redimension : '.round($m_need / pow(1024,2),2).'M '; echo 'Mémoire possible : '.round($m_limit / pow(1024,2),2).'M'; echo "Manque de mémoire : $memory M"; $im = imagecreatefromjpeg($basedir . $a); imagejpeg($im, $basedir . $a); imagedestroy ($im); echo "$a done\n"; }

Il s'agit d'une boucle. Pour chaque itération, on exécute la fonction imagedestroy($im) pour libérer de la mémoire. Je vous propose de lancer ce script tel quel puis en commentant la ligne imagedestroy($im).

Créez un fichier testmemory.php dans un répertoire contenant des images (de préférence de grosses tailles), copiez ce code (et remplacez le nom des images par celui de vos images) puis lancez-le dans un navigateur web. Vous verrez que la fonction imagedestroy() est vraiment utile mais surtout qu'il n'est pas forcément utile de toucher à l'option memory_limit de php.ini.

Source grandement inspirée de cette page : http://www.developpez.net/forums/showthread.php?t=269986

 

Tutoriaux

Récemment, j'ai eu besoin de mettre à jour des champs si ceux-ci existaient ou de les insérer dans le cas contraire. En soi, ce n'est pas compliqué. Il suffit de tester si les entrées existent, si oui, on les met à jour, sinon on les ajoute.

Voici une structure de table pour l'exemple :

Table statsvisit
id page_id visites date_enregistrement
1 55 152 25-10-2012 00:00:00
2 56 189 25-10-2012 00:00:00

Le but est de mettre à jour le champ visites correspondant à une page page_id à une date t. A une date t+1, nous ajouterons des entrées. Dans une même journée, le nombre de visites sera mis à jour.

Tutoriaux

Lorsque vous envoyez un mail, il est toujours intéressant d'attacher une signature afin que vous puissize diffuser toutes vos coordonnées (email, téléphone, site web, fax, ...) d'autant plus si vous êtes un professionnel.

Nous allons nous intéresser à la signature d'un mail Hotmail. Premièrement, il faut se rendre dans le menu Options (Sous-menu Autres options).

hotmail-options

Vous tombez sur une liste d'options. Nous allons nous intéresser au bloc "Rédaction de message" et cliquer sur le lien "Signature et police du message". Voici la page qui s'affiche :

hotmail-signaturepage

Nous pouvons modifier la police par défaut utilisée lors de la rédaction d'un message et modifier la signature personnelle, c'est ce qui nous intéresse ici.

Ici, par exemple, nous pouvons voir qu'une image est utilisée en tant que signature. Nous allons voir par la suite comment insérer une image dans la signature.

Par défaut c'est le mode "Texte enrichi" qui est sélectionné par défaut. Cela permet de mettre en forme le texte assez facilement. Vous pouvez mettre votre texte en gras, ajouter une liste, des liens, .. sans vous soucier de l'implémentation.
Si vous dépliez le menu, vous verrez "Mode HTML" et "Texte brut". Le texte brut permet d'insérer du texte sans mise en forme. L'intérêt du texte brut, c'est surtout de passer les anispams et d'être compatible avec toutes les messageries.

Le mode HTML est le plus intéressant car il nous permet de personnaliser la signature comme on le souhaite cependant il vaut mieux l'utiliser avec parcimonie car l'interprétation de la signature ne donnera pas la même chose sur tous les clients de messagerie et webmail.
Ce mode nous permettra surtout d'insérer une image. D'abord, il faut disposer d'une image sur le web et insérer le code suivant:

<Mettre ici un texte alternatif>

Cliquer sur le bouton Enregistrer et le tour est joué!

Tutoriaux

Les clients de messagerie n'utilisent pas tous les mêmes formats de mail du coup il arrive que certains messages ne s'affichent pas correctement lorsqu'ils sont ouvert dans un autre client de messagerie que celui de l'envoi. C'est le cas notamment entre Microsoft Outlook et Mozilla Thunderbird (qui à l'heure où j'écris vient de passer à la version 8).

Il arrivera que, si vous ouvrez un mail qui provient d'Outlook sur Thunderbird, vous n'ayez pas tout le message et que vous ayez un fichier winmail.dat attaché. Il est toujours possible d'accéder à ce contenu même si, par défaut, Thunderbird ne le permet pas.

Voici un guide rapide pour ouvrir le fichier winmail.dat:

  1. Téléchargez l'outil Fentun (Sauvegarder le sur votre disque dur. Il n'y a pas d'installation à lancer)
  2. Ouvrez un email contenant un fichier winmail.dat
  3. Faire un clic-droit sur winmail.dat, sélectionner ouvrir et choisissez le fichier fentun.exe (celui que vous venez de télécharger)
  4. Une fenêtre s'ouvre avec le contenu du winmail.dat

fentun

Et voilà! C'est simple non?

Fentun est compatible avec les Windows les plus récents même si son interface peut paraitre austère et rappeler Windows 3.1...Il existe aussi une version Linux mais j'ai pas eu l'occasion de la tester.

Tutoriaux

Dans un commentaire sur le blog, on m'a demandé comment désactiver l'aperçu avant impression de Chrome. Apparemment, la fonctionnalité semble rencontrer quelques problèmes d'impression. Après quelques recherches, il s'avère que de nombreux utilisateurs rapportent des bugs concernant cette fonction. Une demande fréquente est de désactiver l'aperçu avant impression.

Deux solutions permettent de résoudre les problèmes liés à cette fonctionnalité.

Utiliser les Paramètres avancés

En utilisant l'aperçu avant impression, vous avez toujours la possibilité de passer par l'impression standard. Cliquer sur Imprimer pour avoir la fenêtre "Aperçu avant impression"...

min-chrome-print-preview

...puis cliquer sur "Paramétres avancés..." (à gauche de la fenêtre). Ca ouvre la fenêtre standard d'impression.

min-chrome-print

Et voilà c'est comme avant!

Désactiver l'aperçu avant impression

Pour désactiver l'aperçu avant impression, il faut modifier le raccourci de lancement de Chrome. Sous Windows, ajouter "--disable-print-preview" au raccourci. Pour modifier le raccourci, faire clic-droit sur l'icone Chrome de votre bureau et cliquer sur Propriétés. Ajouter "--disable-print-preview" au champ Cible comme le montre l'image ci-dessous.

min-changer-raccourci-chrome

 

Voilà j'espère que ça aidera d'autres utilisateurs.

Tutoriaux

facebook-poubelle

On m'a posé la question récemment sur la possibilité de supprimer définitivement un compte Facebook.
C'est possible! Et simplement par dessus tout!

Il suffit de se rendre sur une page de suppression de compte et de cliquer sur le bouton Submit (ou Envoyer selon la langue de votre profil). On vous demandera de confirmer votre choix et vous aurez 14 jours avant que le compte soit effectivement supprimé. Pendant ces 14 jours, vous pourrez vous connecter à votre compte et avertir vos amis facebook de votre décision et vous gardez la possibilité de changer d'avis. Après il sera trop tard.

min-supprimer-compte

Tutoriaux

Twitter permet d'écrire des messages assez courts. Il existe quelques commandes et techniques pour optimiser l'efficacité et l'impact de vos messages. En voici 2/3 qui vous faciliteront le tweet.

Raccourcir les tweets

Comme vous disposez de peu de caractères pour écrire, il faut faire en sorte d'économiser vos caractères. Un exemple simple est d'utiliser le langage SMS. C'est moche et les défenseurs de la langue française se sentiront offensés mais c'est pratique. En fin de compte, on se retrouve dans le même contexte d'un SMS où on doit exprimer des choses en un minimum de mots.
Ce qui peut prendre énormément de place et qui ne peut pas être SMSisé, ce sont les liens web cependant Twitter propose une fonctionnalité pour raccourcir un lien automatiquement. Ca marche bien mais une autre solution existe. Il s'agit d'utiliser un raccourcisseur de lien tel que bitly. Il raccourcit le lien à l'extrême. C'est vraiment efficace. Et, en plus, l'autre avantage est que ce lien pourra être réutilisé ailleurs.

min-bitly

Adresser un tweet à un utilisateur

@user : Envoie un message à l'utilisateur user. Pour envoyer un message à titchagcreation, il suffit de mettre "@titchagcreation <Votre message>" dans votre tweet. C'est très pratique pour répondre à un tweet ou, simplement, pour cibler un message.

Utiliser des mots clés

#keyword : Il peut être intéressant de mettre un mot clé dans un message. Cela permet de retrouver des messages autour d'un même sujet.

Il s'agit là, à mon goût, des commandes essentielles pour se lancer dans le tweet. Pour découvrir les fonctionnalités avancées de Twitter, je vous invite à parcourir l'aide de Twitter (voir lien ci-dessous).

Liens

Tutoriaux

Vous recevez souvent des mails indésirables, de la publicité, de la promotion pour du viagra, ... et vous aimeriez vous en débarrasser! Voici un guide rapide de prise en main pour filtrer vos spams avec Thunderbird.
Personnellement, Thunderbird est le client de messagerie que j'utilise. Il est robuste, pratique et correspond parfaitement à mes besoins. Le client de messagerie Outlook de Microsoft fournit surement des services plus avancés et dispose de protection efficace contre les spams cependant cette protection s'avère parfois trop efficace et rejette à la poubelle des mails sérieux et pouvant être très importants.

J'en viens au guide.

Premièrement, vous recevez un mail indésirable. La première réaction est généralement d'envoyer ledit mail à la corbeille. Ce n'est pas une mauvaise réaction mais elle n'évitera pas au même mail de revenir. Il faut prévenir le retour de ce mail. Voici un exemple de spam :

min-mail-indesirable

Tutoriaux

Proposer un flux RSS pour suivre l'actualité d'un site ou d'un blog est devenu indispensable. Les CMS, forums, blogs disposent généralement de fonctionnalités pour gérer les flux RSS cependant les flux sont gérés séparément. Supposons que nous ayons un site disposant d'un forum et d'un blog. Le forum et le blog auront chacun leur propre flux RSS et il faut donc s'abonner aux 2 flux séparément pour être tenu au courant des dernières nouveautés. Il serait plus pratique d'avoir un seul flux pour tout le site.

Comment faire?

Pour cela il existe Yahoo Pipes. Yahoo Pipes permet de manipuler du contenu à travers le web et notamment des flux RSS. En entrée, on donne des sources de différentes origines à Yahoo pipes, on établit un certain nombre de règles et de filtres et, en sortie, nous avons un flux unique!

Un p'tit tutoriel pour démarrer avec Yahoo Pipes!

  1. Se connecter sur Yahoo Pipes. Aller sur la page d'accueil Yahoo Pipes et cliquer sur le bouton "Create a Pipe". Entrer votre compte Yahoo (ou google ou facebook). Vous arrivez sur la page ci-dessous.
    min-yahoo-pipes
  2. Sélectionner les flux RSS que vous voulez combiner. Pour cela, faites un glisser-déposer du bouton "Fetch Feed" dans la zone quadrillée. Dans le champ qui apparait, entrez l'adresse d'un flux.
    min-yahoo-pipes-feeds
    On peut prévisualiser dans la partie "Debugger" le résultat du flux.
  3. On peut ajouter des flux en cliquant sur le "+" à côté de "URL" (Le "-" à côté des champs permet de les retier).
  4. On lie la boîte "Fetch Feed" à "Pipe Output". "Pipe Output correspond au flux mixé.
    min-yahoo-pipes-link
  5. On clique sur le bouton "Save" en haut à droite et on choisit un nom de flux.
  6. On est prêt! On peut voir le flux en cliquant sur le bouton "Run Pipe".
    min-yahoo-pipes-run

Pour voir le flux mixé dans votre navigateur web cliquez sur le bouton "Get as RSS". Dans mon exemple, le flux est le suivant: http://pipes.yahoo.com/pipes/pipe.run?_id=8111a38e7322ce39d35e2fec66627578&_render=rss.

NB : Il est possible d'ajouter des filtres entre "Fetch Feed" et "Pipe Output". Ces filtres permettent de trier par date, par ordre alphabétique, ...