Signaler

Inserer des smileys dans un formulaire

Posez votre question sunev 20Messages postés dimanche 29 mai 2016Date d'inscription 26 novembre 2016 Dernière intervention - Dernière réponse le 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>';
}
?>
Afficher la suite 
Utile
+0
moins plus
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 $
Ajouter un commentaire
Utile
+0
moins plus
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
nagaD.scar 4022Messages postés samedi 8 septembre 2007Date d'inscription 30 novembre 2016 Dernière intervention - 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:
http://www.phpfacile.com/apprendre_le_php/envoyer_un_mail_en_php_2

naga
Répondre
ZeNairolf 1210Messages postés vendredi 6 mars 2009Date d'inscription 1 décembre 2016 Dernière intervention - 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é.
Répondre
Ajouter un commentaire
Utile
+0
moins plus
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>';
}
?>
Ajouter un commentaire
Utile
+0
moins plus
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;
}
ZeNairolf 1210Messages postés vendredi 6 mars 2009Date d'inscription 1 décembre 2016 Dernière intervention - 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.
Répondre
Ajouter un commentaire
Utile
+0
moins plus
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")
Ajouter un commentaire

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 !