Inserer des smileys dans un formulaire

Fermé
sunev Messages postés 39 Date d'inscription dimanche 29 mai 2016 Statut Membre Dernière intervention 16 mai 2017 - 26 nov. 2016 à 15:34
 sunev - 1 déc. 2016 à 18:25
Bonjours
je n'arrive pas a avoir l'image du smiley quand le mail arrive dans la boite a mails, c'est toujours en texte (cool) ou (j'aime) qui s'affichent.
si quelqu'un voit ou se trouve le problème dans le code, merci de me le signaler.

d'autre part quand je clique sur l’icône le texte s'affiche mais le curseur ne se repositionne pas derrière, il doit y avoir un rajout de code a faire dans le javascript
si la aussi quelqu'un a une idée merci d'avance pour le code a mettre.

le formulaire (simplifié)

<!DOCTYPE html><html>
<head><title>Formulaire de contact</title>
<meta charset="utf-8" />
<script language='JavaScript'>
<!--
var nom;
function inserticon(nom){
var temps;
temps=formulaire1.message.value;
temps=temps+''+nom+''
formulaire1.message.value=temps;
}
//-->
</script>
</head>
<body>
<form name="formulaire1" method="post" action="contacttraitform3.php" >
<table class="centre" cellpadding="5" border="0">
<tr >
<td><a onclick='inserticon("(jaime)");'><img src='smileys/lover.gif'></A></td>
<td><a onclick='inserticon("(cool)");'><img src='smileys/cool.gif'></A></td>
</tr>
</table>
<p><label for="message">Message :</label><textarea id="message" name="message" cols="30" rows="8"></textarea></p><br />
<p ><input class="submit" type="submit" value="Envoyer" /></p>
</form></body></html>


Fichier de traitement --- contacttraitform3.php

<?php
if ($_SERVER['REQUEST_METHOD']=='POST') { // S'il y des données de postées
$destinataire = 'monmail@free.fr'; // Variables concernant l'email
$message = htmlentities($_POST['message']);

$message = str_replace('(jaime)','<img src="smileys/lover.gif">',message);
$message = str_replace('(cool)','<img src="smileys/cool.gif">',message);

$sujet = 'Titre du message'; // Titre de l'email
$contenu = '<html><head><title>Titre du message</title></head><body>';
$contenu .= '<p>Bonjour, vous avez reçu un message à partir de votre site web.</p>';
$contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
$contenu .= '</body></html>'; // Contenu du message de l'email (en XHTML)

$headers = 'MIME-Version: 1.0'."\r\n"; // Pour envoyer un email HTML, l'en-tête Content-type doit être défini
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
mail($destinataire, $sujet, $contenu, $headers);// Fonction principale qui envoi l'email

echo '<!DOCTYPE html><html><head>
<title>Message Envoyé</title>
<meta charset="utf-8" /></head>
<body>
<span>Votre Message à bien été Envoyé<br />Merci</span>
</body></html>';
}
?>
A voir également:

5 réponses

Utilisateur anonyme
26 nov. 2016 à 22:26
Tu as mal déclaré ta variable message dans la fonction str_replace:

$message = str_replace('(cool)','<img src="smileys/cool.gif">',message);
tu as oublié le $
0
merci
avec
$message = str_replace('(cool)','<img src="smileys/cool.gif">',$message);

ça fonctionne en partie, les smiley sont remplacés par
un petit rectangle qui contient a l’intérieur une petite
croix rouge et "cl iq u"
méme avec une petite image en jpg c'est pareil aucun icône s'affiche dans le mail mais seulement des emplacements d'images vides
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 252
29 nov. 2016 à 17:52
dans ton email,
smileys/cool.gif
ne correspond à rien: quand on ouvre un email il n y a pas de lien avec le serveur qui héberge l image.

Donc soit tu transmet l addresse de l image ( http:// .... /cool.gif ) .
Soit tu doit créer un mail le contenant.

Un peu d aide:
https://www.phpfacile.com/apprendre_le_php/envoyer_un_mail_en_php/2

naga
0
Utilisateur anonyme
30 nov. 2016 à 18:10
Oui il faut le chemin complet de ton site vers cette image pour afficher l'image, c'est pareil si tu veux partager un fichier. Car là si par exemple on veut voir l'image sur gmail.com, le lien ramène à https://mail.google.com/mail/u/0/smileys/cool.gif;

De plus tu peux oublier le JS, presque toute les boites mails suppriment le JS par mesure de sécurité.
0
Bonsoir ZeNairolf
merci de tes conseils
Avec le code complet c'est pareil, le chemin est pourtant exact et les smileys sont bien dans le repertoitre racine du serveur, mais ce sont toujours les mêmes images vides qui arrivent dans le mail ( dans outlook)


<?php
if ($_SERVER['REQUEST_METHOD']=='POST') { // S'il y des données de postées
$destinataire = '***@***'; // Variables concernant l'email
$message = htmlentities($_POST['message']);

$message = str_replace('(jaime)','<img src="http://monsite.free.fr/love.gif">',$message);
$message = str_replace('(cool)','<img src="http://monsite.free.fr/cool.gif">',$message);

$sujet = 'Titre du message'; // Titre de l'email
$contenu = '<html><head><title>Titre du message</title></head><body>';
$contenu .= '<p>Bonjour, vous avez reçu un message à  partir de votre site web.</p>';
$contenu .= '<p><strong>Message</strong>: '.$message.'</p>';
$contenu .= '</body></html>'; // Contenu du message de l'email (en XHTML)

$headers = 'MIME-Version: 1.0'."\r\n"; // Pour envoyer un email HTML, l'en-tête Content-type doit être défini
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
mail($destinataire, $sujet, $contenu, $headers);// Fonction principale qui envoi l'email

echo '<!DOCTYPE html><html><head>
<title>Message Envoyé</title>
<meta charset="utf-8" /></head>
<body>
<span>Votre Message à bien été Envoyé<br />Merci</span>
</body></html>';
}
?>
0
Re bonsoir ZeNairolf

Non c'est tout bon, j'ai simplement oublier de cliquer sur "telecharger les images" outlook ne les ouvrent pas automatiquement par sécurité.
Merci encore.
Un dernier conseil si tu peut m'éclairé, comment mettre le curseur automatiquement derriere le nom du smiley dans le texaera du formulaire

c'est dans ce script que ça doit ce passer

 <script language='JavaScript'> 
<!--
var nom;
function inserticon(nom){
var temps;
temps=formulaire1.message.value;
temps=temps+''+nom+''
formulaire1.message.value=temps;
}
0
Utilisateur anonyme
1 déc. 2016 à 17:05
J'ai pas trop compris, tu parles de quel curseur? Et ensuite le JS comme dit au dessus ne fonctionne pas, tu dois le faire en PHP.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pourtant ce formulaire que j'ai trouvé sur un forum, fonctionne.
Il ajoute les noms des smileys dans le texaera
(j'aime) et (cool).
Quand je clique par exemple sur l’icône "cool.gif", (cool) s'inscrit dans texaera mais je suis obligé de ramener le curseur de la souris sur la fenêtre du textaera et de cliquer a la suite de (cool) pour remettre le curseur à la suite et pouvoir taper du texte au clavier.
J'ai vu dans des formulaire que le curseur se place automatiquement a la suite du nom du smiley (ici(cool)) une fois que l'on a cliqué sur son icône.
On peut ainsi continuer de taper le message sans avoir besoin de manipuler la souris .



<head>
<title>Formulaire de contact</title>
<meta charset="utf-8" />
<script language='JavaScript'>
<!--
var nom;
function inserticon(nom){
var temps;
temps=formulaire1.message.value;
temps=temps+''+nom+''
formulaire1.message.value=temps;
}
//-->
</script>
</head>
<body>
<form name="formulaire1" method="post" action="contacttraitform3.php" >
<table class="centre" cellpadding="5" border="0">
<tr >
<td><a onclick='inserticon("(jaime)");'><img src='smileys/lover.gif'></A></td>
<td><a onclick='inserticon("(cool)");'><img src='smileys/cool.gif'></A></td>
</tr>
</table>
<p><label for="message">Message :</label><textarea id="message" name="message" cols="30" rows="8"></textarea></p>
<br />
<p ><input class="submit" type="submit" value="Envoyer" /></p>
</form>
</body>



Ensuite le fichier "contacttraitform3.php" (inscrit au complet plus haut dans la discussion) rectifié comme tu ma la conseiller met bien les images des icônes dans le mail ( en cliquant bien sur sur "télécharger les images")
0