06.99.41.90.80
banner blog

Blog

Le coin de l'expert

Tutoriaux
Lutter contre les spams

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.

Ajouter un commentaire

Lire la suite...

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

 

Ajouter un commentaire

Lire la suite...

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.

Ajouter un commentaire

Lire la suite...

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é!

Ajouter un commentaire

Lire la suite...

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.

Ajouter un commentaire

Lire la suite...

Contact

titchag'Création
Antonio PEDRO

  • Téléphone06.99.41.90.80
  • Domicile78000 Versailles
  • Adresse email
  • FormulaireFormulaire en ligne

Témoignages

quote start Antonio Pedro c'est la garantie d'une qualité d'écoute et de compréhension exceptionnelles, d'une disponibilité et d'une rapidité d’exécution, d'une grande réactivité, de nombreuses propositions , d'une communication fluide, pour un résultat top !   quote end

Nadège Maruta - Les Canons du cancan

 

Tous droits réservés © 2009-2017