Rechercher : dans
Par :

Envoyer à une amie

Dernière réponse le 17 fév 2009 à 21:10:37 edwige34, le 18 aoû 2008 à 15:57:26 
 Signaler ce message aux modérateurs

Bonjour,
Je voudrais savoir si quelqu'un saurait comment faire la partie, comme dans les sites commerciaux, "envoyer à une amie".
C'est à dire que lorsque l'utilisateur clique sur le lien "envoyer à une ami", il apparait une fenêtre ressemblant à une une page d'envoi mail avec l'adresse de celui qui envoie aisi que, dans la partie message , le lien du site . Il n'a donc plus qu'à ajouter l'adresse du destinataire.

Meilleures réponses pour « envoyer à une amie » dans :
Envoyer des fichiers volumineux par mail Voir Envoyer de gros fichiers à des amis par courrier électronique n'est pas toujours facile. La plupart des serveurs de messagerie n'acceptent pas des fichiers de taille supérieure à 5 Mo. Néanmoins, il existe des solutions alternatives : Les serveurs...
Envoyez des sms gratuitement Voir Voici les 10 meilleurs sites pour envoyer des SMS gratuitement (ou à très bas prix) chaque jour :) Cela pourra servir à certains d'entre vous lorsque vous n'avez plus de crédits. :) 1. CallWave Description : Vous pouvez envoyer 5 SMS par jour...
[Langages] Envoyer un mail avec pièce jointe Voir Les mails, tout comme les pages web, sont livrés avec des en-têtes (headers en anglais). Ces en-têtes servent à donner quelques détails nécessaires comme l'adresse du destinataire, celle de l'envoyeur, la date de l'envoi, le sujet du mail etc. Elles...
Personnaliser la commande "Envoyer vers" VoirComment enrichir ou nettoyer le menu "Envoyer vers" ? Comment accéder au dossier "SendTo" ? Comment ajouter un raccourci dans SendTo ? Rétablir les raccourcis "Bureau", "Dossier compressé", "Mes documents", "Destinataire" Un clic droit...
Impossible d'envoyer des mails par smtp.mail.yahoo.fr VoirSymptômes Si vous ne parvenez plus à envoyer du courrier avec le serveur SMTP de Yahoo et que Outlook vous renvoie le message suivant : Échec de la connexion au serveur. Compte : 'pop.mail.yahoo.fr' Serveur : 'smtp.mail.yahoo.fr', Protocole :...
[Outlook Express] Pièces jointes impossibles à envoyer VoirSi Outlook Express ne peut pas envoyer les pièces jointes ajoutées à votre mail, ceci est probablement dû au fait qu'elles possèdent une taille trop volumineuse. Pour y remédier, la solution consiste à scinder les pièces jointes en plusieurs...

1

Nico_, le 18 aoû 2008 à 21:26:53
  • +1

Bonsoir,

J'ai une petite question:

tu recherches un script qui envoi la page en cours de visite ?
Exemple: ça envoi le lien suivant : http://www.commentcamarche.net/forum/affich 7956157 envoyer a une amie

ou

la page d'accueil du site ?
Exemple: ça envoi le lien suivant : http://www.commentcamarche.net

Bonne soirée Le service a besoin de nous, mais nous nous n'avons pas beso­in de lui !
Si résolu, n'oublie pas de cliquer !

Répondre à Nico_

2

Groarh, le 18 aoû 2008 à 23:30:03
  • +1

@ edwige34 : C'est assez simple, il s'agit d'un formulaire php avec 3 champs de texte et un bouton envoi. Voici un exemple simple mais respectueux des normes xhtml (une bonne habitude à prendre) :

<!DOCTYPE html PUBLIC
	"-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>test edwige34</title>
</head>

<body>
<h3>envoyer à une amie</h3>
<form action="envoyer.php" method="post">
<p>
	<label for="to">à :</label>
	<input type="text" name="to" id="to"></input>
</p>
<p>
	<label for="object">sujet :</label>
	<input type="text" name="object" id="object"></input>
</p>
<p>
	<label for="message">message :</label>
	<textarea name="message" id="message" rows="3" cols="60"></textarea>
</p>
<p><input type="submit"></input></p>
</form>
</body>
</html>

Dans ce code, le formulaire envoie les données de mail à un script appelé envoyer.php via la méthode POST. Il vaut mieux ne pas utiliser GET étant donné que le corps du mail fait partie des données et que GET, qui envoie les valeurs par l'URL, est parfois limité en longueur.
Le script récupère naturellement les variables grâce à $_POST et envoie le mail avec la fonction... mail() ^^

Par mesure de sécurité, il vaut mieux traiter les textes saisis par l'utilisateur, il pourrait tenter d'introduire du code malveillant. Pour ça, une fonction bien pratique qui supprime les balises html : strip_tags().
Au final, le fichier envoyer.php pourrait bien ressembler à ceci :
<?php
$to = strip_tags($_POST['to']);
$object = strip_tags($_POST['object']);
$message = strip_tags($_POST['message']);
mail($to, $object, $message);
?>

C'est l'exemple le plus simple je pense.
Bien sûr, il est possible d'ajouter un message de confirmation du genre :
echo "Le message intitulé $object a bien été envoyé à $to ...";

Dernier point : en xhtml, la balise textarea doit comporter obligatoirement les attributs rows qui décrit son nombre de lignes et cols son nombre de lettres par ligne. J'ai mis 3 et 60, à toi de mettre ce qui te convient.

Bon courage, et si tu as des questions je suis là !

Répondre à Groarh

13

fab2466, le 17 fév 2009 à 13:08:56

Question

Existe'-il un code tout fait que je pourrai introduire dans une nouvelle page, car pour moi c'est du chinois, comme ça je n'aurai plus qu'a personnalisé ma page ?

Merci d'avance

Fab

Répondre à fab2466

14

 Nico_, le 17 fév 2009 à 21:10:37
  • +1

Bonsoir,

tu peux le faire avec le code suivant :
copier l'intégrale de se code dans une page avec une extension .php

il faut simplement changer TON@dresse_mail.f (mis en gras) par ton adresse.

Bonne soirée

le code:

<?php
$envoi = $_POST['envoi'];
$email_dest = $_POST['zone_email'];
if ($envoi == "Envoyer" && $email_dest != ""){
if ($_POST['envoi']) {

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: ".$_SERVER["SERVER_NAME"]."<TON@dresse_mail.fr>\n";


$headers .="Content-Type: text/plain; charset=iso-8859-1";

$subject = "Découvrez ce site";


for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= " Un(e) ami(e) souhaite vous faire découvrir le site suivant: ". $_POST['champ'.$a] . "\n\n Bonne visite.";
}


$sortie = $partie_champs_texte ;

// Send the e-mail
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");
} else { // Closing if !mail...

if ($envoi == "Envoyer" && $email_dest != "") { echo 'Message envoyé';} if ($envoi == "Envoyer" && $email_dest == "") { echo 'Merci de renseigner l\'adresse du destinataire';} 
exit();

} // Fin du else
} // Closing if edit
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Pub_site_envoi_par_visiteur</title>

<link href="../dependant/css.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/javascript">function verifSelection() {if (document.mail_form.champ1.value == "") {
alert("URL page invalide")
return false
} if (document.mail_form.zone_email.value == "") {
alert("Pas de destinataire")
return false
}

invalidChars = " /:,;'"

for (i=0; i<invalidChars.length; i++) {	// does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (document.mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
mail_form.zone_email.focus()
return false
}
}

atPos = mail_form.zone_email.value.indexOf("@",1)			// there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

if (document.mail_form.zone_email.value.indexOf("@",atPos+1) != -1) {	// and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

periodPos = mail_form.zone_email.value.indexOf(".",atPos)

if (periodPos == -1) {					// and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

if (periodPos+3 > mail_form.zone_email.value.length)	{		// must be at least 2 characters after the 
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}} // Fin de la fonction

</script>
</head>

<body {background-color="#CABOFF"}>

<p>envoyer &agrave; un / une ami /amie</p>
    <p><form name="mail_form" method="post" action="?" onSubmit="return verifSelection()">
  <font face="Verdana" size="2">
    <?php $site =  $_SERVER["SERVER_NAME"]; ?>
  <input name="champ1" type="hidden" value="<?php echo 'http://'.$_SERVER['SERVER_NAME'] ;?>" />
        L'adresse du destinataire</font>
      <input name="zone_email" type="text" size="50">
    <input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="1">
        <input name="nbre_zones_texte" type="hidden" value="0">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="urlsite"><input name="titre_email" type="hidden" value="L\'adresse du destinataire"></td>

<input type="reset" name="Reset" value="Effacer">          
<input type="submit" name="envoi" value="Envoyer">
      

</form></p>
<div align="center">
  <?php if ($envoi == "Envoyer" && $email_dest != "") { echo 'Message envoyé';} if ($envoi == "Envoyer" && $email_dest == "") { echo 'Merci de renseigner l\'adresse du destinataire';} ?>
</div>
</body>
</html>
Si résolu, n'oublie pas de cliquer !

Répondre à Nico_

3

Delphine, le 3 oct 2008 à 09:59:47

Bonjour,

Je recherchai ce script et il fonctionne à merveille :-)

Par contre, je voudrai par exemple qu'à la place du message que l'on tape, que cela soit une image avec un lien imposée qui soit envoyé, comment faire s'il vous plait ?

Merci pour vos réponses apportées.

Répondre à Delphine

4

Groarh, le 6 oct 2008 à 10:13:53

"Une image avec un lien imposé" ?
Peux-tu être plus précise Delphine s'il-te-plaît ? Garde à l'esprit qu'être webmaster c'est offrir des services aux visiteurs, pas leur en imposer !

Répondre à Groarh

5

Delphine, le 6 oct 2008 à 10:24:39

Oui en effet c'est un service supplémentaire, seulement je ne veux pas que mes membres fassent n'importent quoi avec cette option.
Le but est de faire connaitre mon site à d'autres personnes par l'intermédiaire du membre déjà inscrit.
Donc quand je dis bannière avec lien, c'est genre bannière de parrainage...mais le membre pourra quand même rajouter un petit message s'il le souhaite mais je veux que la bannière ou le lien de mon site soit visible et ne puisse être effacé.
C'est juste pour éviter que certain membre fasse n'importe quoi avec cette option et en abuse.

Répondre à Delphine

6

Groarh, le 6 oct 2008 à 18:53:52
  • +2

C'est super simple :)
reprends le code de l'envoi de mail (après que l'utilisateur ait saisi son message) :

<?php
$to = strip_tags($_POST['to']);
$object = strip_tags($_POST['object']);
$message = strip_tags($_POST['message']);

mail($to, $object, $message);
?>

Après la récupération-purification du message (à l'endroit où j'ai mis une ligne blanche), il suffit de rajouter, dans le message, le code de ta bannière sous forme de texte :
$message = "<a href=\"url_de_monsite\">
<img src=\"url_de_ma_banniere\" alt=\"texte de remplacement\" />
</a><br />" . $message;

NB : Les guillemets qui font partie du texte doivent être échappés avec des antislashes \ comme j'ai fait, sinon php va confondre avec la fin de la chaîne.

Reste à savoir si ton serveur te permet d'envoyer des mails au format html, mais c'est un autre problème...

NB2 : je ferme mes balises selon la norme xhtml strict. Si ça pose problème, retire les / à la fin de img et br.

Répondre à Groarh

7

Delphine, le 8 oct 2008 à 12:36:49

Quand j'envois le message cela mets (sur le mail de la personne qui reçoit le message):
<a href=\"url_de_monsite\">
<img src=\"url_de_ma_banniere\" alt=\"texte de remplacement\" />
</a><br />ESSAI

Cela n'affiche pas la bannière ! pourtant je suis sûr que c'est possible car lorsque j'envoi une newsletter par ex et bien les bannières s'affichent bien.

Répondre à Delphine

8

Groarh, le 8 oct 2008 à 13:29:15
  • +1

Okaye... heu elles marchent comment tes newsletters ? Tu devrais reprendre le principe, si ça marche ^^

Répondre à Groarh

9

Delphine, le 8 oct 2008 à 15:40:02
  • +1

Trop cool ça marche, super !

En faite, il suffisait que je rajoute ceci pour pouvoir voir l'image correctement :

<?php
$to = strip_tags($_POST['to']);
$object = strip_tags($_POST['object']);
$message = strip_tags($_POST['message']);
$message = "<a href=\"url_de_monsite\">
<img src=\"url_de_ma_banniere\" border=\"0\" alt=\"texte de remplacement\" />
</a><br /><br />" . $message;
$entete="Content-type:text/html";
mail($to, $object, $message, $entete);

Merci beaucoup pour ton aide Groarh, je suis super contente :-)

Répondre à Delphine

10

Groarh, le 8 oct 2008 à 16:17:07

Content de t'avoir aidée ;)

N'oublie pas de marquer le topic comme résolu.

Répondre à Groarh

11

jcrum, le 24 nov 2008 à 12:07:06
  • +1

Bonjour,

Bon le script nikel franchement !
J'aurais juste aimé savoir comment pouvons nous faire pour changer l'adresse de l'expéditeur (actuellement envoi le nom de la société@ovh... )

Merci

Répondre à jcrum

12

Groarh, le 24 nov 2008 à 16:08:22
  • +2

L'expédireur est dans la variable $to, c'est l'utilisateur qui renseigne cette donnée normalement. Si tu veux imposer une adresse cible, modifie les arguments de ta fonction mail :

mail("adresse@machin.com", $object, $message, $entete); 

;)

Répondre à Groarh
Collection CommentÇaMarche.net