Envoyer à un ami

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Faut pas pusher ! S’envoyer une page web sympa repérée sur la machine d’un copain, faire parvenir à un ami le super article qui lui confirme ce dont vous parliez le matin même : c’est toujours utile ! Spip permet de faire ça assez facilement, profitons-en.

Pour envoyer une page web, il n’est pas forcément nécessaire d’envoyer l’intégralité de la page mais seulement le contenu de la page, pour cela il nous faut créer un couple squelettique usuel appelons le mailami.php3/html (cf. pièces jointes).

Il pourra être très inspiré du squelette proposé par ARNO* sur uzine pour le format « imprimable », le but est le même. Mais libre à vous de le modifier à votre guise !

Une fois votre couple squelettique réalisé (dans le fichier joint ce sont les fichiers mailami.php3 et mailami.html), vous allez pouvoir créer deux fichiers php :

-  Le formulaire qui prend les adresses : appelons-le formulaire.php.

Il sera du type :

<form method="post" action="mailarticle.php" enctype="multipart/form-data">
Envoyer l'article &agrave;&nbsp;(entrez l'email du destinataire) :
<br><input name="adresse" size="40" value=""><br>
De la part de&nbsp;(entrez votre email) :
<br><input name="From" size=40 value=""><br>
<center><input type="submit" value="Envoyer"></center>
<input type="hidden" name="id_article" value="<?php echo "$id_article"; ?>">
</form>

C’est un formulaire post classique, qui appelle le script d’envoi du mail que nous détaillerons juste après. Notez le dernier champ : "<?php echo "$id_article"; ?>

, il signifie au formulaire d’envoyer au script non seulement les adresses email qui seront rentrées dans les cases mais également le numéro de l’article demandé. Il nous faudra donc penser à mettre cette valeur dans l’url d’appel au script. Mais l’équipe de spip a pensé à nous car comme pour le couple squelettique imprimer.php3/html il suffira d’utiliser la balise #ID_ARTICLE pour que spip remplace cette balise par sa valeur chiffrée.

Le formulaire est fait, il envoie donc au script de traitement : l’email de l’envoyeur ($From) et l’adresse de celui qui recevra le mail ($adresse) et bien sûr, en caché, $id_article qui est le numéro de l’article.

-  Le formulaire de traitement et d’envoi, appelons le mailarticle.php. Le voici :

<?
$sujet="Le titre de votre message";
$from="From: Ce que vous voulez sauf l'email<$From>\r\n";
$from.="Reply-To: Postmaster <postmaster@votresite.com>\n";
$from.="X-priority:3\n";
$texte="http://www.votresite.com/mailami.php3?id_article=$id_article";
$fr=fopen($texte,"r");
while(!feof($fr)){
   $recup = '';
   while(!feof($fr)){
      $recup .= fgets($fr,1024);
   }
}
fclose($fr);
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html";
$msg="$recup";
if (mail($adresse,$sujet,$msg,$from))
echo("<center><font color=\"green\"><br><br><br><h1>Articlebien envoy&eacute;
&agrave; $adresse de votre part ($From)!</h1></font></center>");
else
echo("<center><font color=\"red\"><br><br><br><h1>Probl&egrave;me &agrave;
l'envoi du mail...d&eacute;sol&eacute;</h1></font></center>");
?>

Personnalisez le :
Donnez un sujet, une adresse de retour, mettez les paramètres de VOTRE site.

Voilà l’essentiel est fait, votre script fonctionne.

Voyons maintenant comment intégrer plus joliment cette fonctionnalité à votre page article.html (squelette de votre article) :

Ajoutez simplement cette ligne à l’endroit où vous souhaitez faire apparaître cette fonction (bien sûr il faudra faire une image « envoyer.gif » !) :

<a HREF="#" onClick="window.open('./formulaire.php?id_article=#ID_ARTICLE','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0, width=300, height=300');return(false)"><img src="./images/envoyer.gif" alt="envoyez cet article &agrave; vos amis" border="0"></a>

Le formulaire s’ouvrira alors dans un popup, ce qui est déjà plus esthétique, et signifiera ainsi au visiteur que tout s’est bien passé.

Autre astuce : un script reste un script , il peut y avoir un bug de sécurité, il est toujours intéressant de s’assurer qu’il fonctionne de façon normale en logguant le nombre d’envois et les IP des envoyeurs. Il vous faut alors créer un fichier envoyerami.txt (chmod 755) dans le même répertoire et compléter le script de traitement par ces quelques lignes :

$filename="envoyerami.txt";
$fl=fopen($filename,"a+");
fwrite($fl,"'$REMOTE_ADDR'|'$HTTP_USER_AGENT'|'$id_article'\n");
fclose($fl);

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom