|
Visitez quelques sites des membres d'Eklesia.net |
Niveau expert
> Comment faire ? > SPIP
Anti-SPAM avec SPIP et Javascript
Pour empêcher les robots à capturer des adresses de courrier électronique de vos sites, rien ne vaut le codage avec un Javascript que vous seul maîtrisez. SPIP peut nous aider à coder ces adresses automatiquement. Le but est de faire afficher une adresse de courrier électronique dans un texte, affichage réalisé avec le "document.write" de Javascript. Le lien doit transmettre l’adresse coupée en 3 morceaux à une fonction Javascript qui recolle les morceaux et lance la messagerie. Regardons la procédure : 1. Rajouter des fonctions Javascript dans l’entêteDans le squelette de vos articles, rajoutez ceci dans la balise <script type="text/javascript">2. Email provenant d’une boucle SPIPNous avons besoin de récupérer l’adresse de courrier électronique dans une variable PHP pour pouvoir la transformer. Une expression régulière coupe l’adresse en trois morceaux (séparation sur le @ et un des points). L’adresse est remplacée par le Javascript nécessaire et affichée dans le squelette. <BOUCLE_auteurs(AUTEURS) {id_article}>3. Email provenant d’un texteSi ce n’est déjà fait, créez un fichier texte avec comme nom "mes_fonctions.php" et placez-le dans le répertoire /ecrire de votre site. Le moteur SPIP reconnait ce nom de fichier et va exécuter les fonctions PHP qui s’y trouvent. Créez dans ce fichier la fonction "apres_propre". Une fonction qui porte ce nom sera reconnue par le moteur SPIP et exécutée avant l’affichage du code HTML final. function apres_propre($texte) {Le texte de l’article se trouve dans la variable $texte soumise à la fonction. Et avant de retourner la variable $texte au moteur SPIP, cherchons les emails écrits avec les raccourcis typographiques de SPIP et transformons-les en Javascript à coup d’expression régulière, avant de sauvegarder de nouveau dans la variable $texte : $cherche = "/<a href=\"mailto:([0-9A-Za-z_.-]+)@([0-9A-Za-z_-]+).([0-9A-Za-z_.-]+)\"/";Nous avons maintenant codé le lien "mailto:" qui lance le client de messagerie, mais il reste encore (éventuellement) des adresses de courrier électronique sans lien quelque part dans le texte. Voici comment coder ces adresses : $cherche = "/([0-9A-Za-z_.-]+)@([0-9A-Za-z_-]+).([0-9A-Za-z_.-]+)/";Fonction complète Ci-dessous, le script complet pour le fichier mes_fonctions.php3 : function apres_propre($texte) {P.S.
Compatibilité : SPIP 1.9.x
Jim WANDERSCHEID - Père de famille dans la banlieue nord de Luxembourg Ville. Industrie pharmaceutique à Bruxelles, Paris, Sacramento avant 1998, aujourd’hui chef de projets à la Ville de Luxembourg. Navigue sur les plans d’eau intérieurs (intranets) depuis 1991 et sur les mers catholiques depuis 1994. Premier serveur catho francophone en 1995 et Port Saint Nicolas en 1997. Webmaster de Port Saint Nicolas et consultant technique du diocèse de Luxembourg. - Port Saint Nicolas
jim.wanderscheid chez gmail point com
6 novembre 2006
|