Signaler

Envoyer à une amie [Résolu/Fermé]

Posez votre question edwige34 2Messages postés mercredi 30 juillet 2008Date d'inscription 18 août 2008 Dernière intervention - Dernière réponse le 4 oct. 2017 à 12:45 par Akalien
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.
Utile
+5
plus moins
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.
Akalien- 4 oct. 2017 à 12:45
un grand merci a tous les gens qui crée des page web
Merci a votre équipe.
Répondre
Utile
+2
plus moins
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); 

;)
Utile
+1
plus moins
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
Utile
+1
plus moins
@ 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à !
fab2466 11Messages postés samedi 31 janvier 2009Date d'inscription 30 juillet 2009 Dernière intervention - 17 févr. 2009 à 13:08
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
Nico_ 1232Messages postés vendredi 29 décembre 2006Date d'inscription 15 mars 2016 Dernière intervention - 17 févr. 2009 à 21:10
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>
Utile
+1
plus moins
Okaye... heu elles marchent comment tes newsletters ? Tu devrais reprendre le principe, si ça marche ^^
Utile
+1
plus moins
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 :-)
Utile
+0
plus moins
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.
Utile
+0
plus moins
"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 !
Utile
+0
plus moins
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.
Utile
+0
plus moins
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.
Utile
+0
plus moins
Content de t'avoir aidée ;)

N'oublie pas de marquer le topic comme résolu.
jcrum- 24 nov. 2008 à 12:07
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

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !