Formulaire d’écriture à l’auteur. Une solution anti-spam

All contributions published for previous SPIP versions

Dans le squelette de base SPIP, il suffit de cliquer sur le nom d’un auteur pour avoir son adresse, alors les bots spammeurs s’en donne à cœur joie.

ce squelette simple ajoute une page pour écrire à l’auteur à travers un formulaire sans jamais voir son mail.

Au lieu de laisser l’utilisateur utiliser son programme de courrier électronique pour envoyer des mails aux auteurs, pourquoi ne pas lui fournir un formulaire web.

Squelette

ceci se fait grâce à un squelette d’une page simple:

ecrire_auteur.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html lang="fr">
<head>
<title>Ecrire &agrave; l'auteur</title>
<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET">

<!-- Ceci est la feuille de style par defaut pour les types internes a SPIP -->
<link rel="stylesheet" href="spip_style.css" type="text/css">

<!-- Les feuilles de style specifiques aux presents squelettes -->
<link rel="stylesheet" href="typographie.css" type="text/css">

<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) -->
<link rel="stylesheet" href="habillage.css" type="text/css" media="projection, screen, tv">
<!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur -->
<link rel="stylesheet" href="impression.css" type="text/css" media="print">

</head>
<body>
<div id="principal" class="contenu">

<BOUCLE_article_principal(ARTICLES) {id_article}>
<BOUCLE_auteurs(AUTEURS) {id_article}>
<div class="cartouche">
<div class="textetop">
<h1 class="titre-texte">&Eacute;crire &agrave; #NOM</h1>
<div class="surtitre">&agrave; propos de "#TITRE"</div>
</div>
</div>

#FORMULAIRE_ECRIRE_AUTEUR

</BOUCLE_auteurs>
<center><a href="#URL_ARTICLE" title="retour &agrave; : #TITRE">retour</a></center>
</BOUCLE_article_principal>

</div>

</body>
</html>

ecrire_auteur.php

<?php
$fond = "ecrire_auteur";
$delais = 10 * 24 * 3600;

include ("inc-public.php");

?>

Mettez ces deux fichiers dans votre répertoire SPIP.

Lien depuis les autres squelettes

Maintenant, il faut dirigez les auteurs vers cette page. Rien de très complexe, il faut faire une boucle AUTEUR (dans un contexte où id_article est disponible. e.g. dans un boucle ARTICLE):

<BOUCLE_auteurs(AUTEURS) {id_article} {par nom}>
                <li><A HREF="ecrire_auteur.php?id_article=#ID_ARTICLE">#NOM</a></li>
</BOUCLE_auteurs>
  1. A partir de la version 1.7.2, le fichier auteur-dist.html fourni par défaut avec SPIP propose la même fonctionalité.
  2. Ce formulaire ne marche que si l’hebergeur sur lequel se trouve le site permet l’envoie d’email.

updated on 9 August 2009

Discussion

2 discussions

  • 1

    Bonjour. Ai implémenté le formulaire sur notre site ( verdeil.ch ).
    Ma question: est-il possible de faire des liens autrement que dans une boucle ARTICLE ??? sans l’appel à l’id de l’article?

    • Est-il possible de faire des liens autrement que dans une boucle ARTICLE ??? sans l’appel à l’id de l’article ?

      Bonjour,

      Oui,on peut imaginer ne pas mettre la boucle ARTICLES dans ce fichier et mettre une simple boucle AUTEURS avec id_auteur.
      Celui ci serait alors passé dans l’url à l’appel de la page.

      Je pense que c’est ce qui est fait dans le fichier de la distribution à partir de la version 1.7.2 (donc cette contrib est un peu obsolète pour ces versions).

    Reply to this message

  • 3

    d’ailleurs ce serait bien de mettre cela dans spip contrib...

    • salut, c’est déjà le cas, le lien auteur renvoit vers la page auteur.php3 avec un formulaire (au moment ou j’écris il y a un bud de réecriture d’url mais tu peux par exemple voir la page contact. Et les adresses mail des forums sont cryptés avec le filtre antispam de spip. On pense à vous !

    • Bonjour,

      Que faut-il faire pour parametrer le site pour que l’envoie de mail fonctionne ?
      Faut-il mettre une adresse de serveur (ou service) SMTP ?
      Je n’ai rien vu dans la partie administration de spip..

      Merci pour vos infos

    • L’envoie des mails n’est pas vraiment fait pas SPIP. Celui ci appelle des fonctions php qui doivent exister sur le serveur.

      Ainsi, si le serveur n’est pas configuré pour l’envoie de mail par php, alors SPIP ne le fait, sinon SPIP le fait (sans autre configuration).

      Il faut donc s’assurer que le fourniseur permet l’envoie d’email sur son serveur.

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom