[RESOLU] Formulaire et envoie d'image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Formulaire et envoie d'image

Re: Formulaire et envoie d'image

par thierry72 » 08 déc. 2015, 14:28

Merci pour ton aide @rtur, problème résolu.... il fallait simplement changer le charset (mettre utf-8 à la place de iso-8859-1) directement dans la page class.phpmailer.php au cas ou cela peut aider quelcun....

Re: Formulaire et envoie d'image

par thierry72 » 08 déc. 2015, 12:00

ok je vais faire des recherches là dessus car simplement en mettant en utf8 j'obtien des trucs style:

Simple texte écrit exprès avec du nimporte koi à fin de château âgées l'hébergement test où enfin voilà quoi ?
merci à toi pour ton aide
thierry

Re: Formulaire et envoie d'image

par @rthur » 08 déc. 2015, 11:56

Théoriquement, le mieux est effectivement de tout passer en utf8.
Quand on est pressé, on se contente de jouer avec les fonctions utf8_encode() ou utf8_decode() jusqu'à ce que ça marche ;)

Re: Formulaire et envoie d'image

par thierry72 » 08 déc. 2015, 10:41

Bon en effet je viens de trouver, c'est bien les éàè î â à etc qui me bloque tout... le moindre accent et sa ne marche plus... les ' eux ne pose pas de problème....
une idée?
je suis en <meta http-equiv="Content-Type" content="text/html; charset="iso-8859-1" />
j'ai lue qu'il était mieux d'être en charset="utf-8" j'ai donc simplement changer le charset mais cela n'a rien changer...
une idée SVP?

Re: Formulaire et envoie d'image

par thierry72 » 08 déc. 2015, 09:33

possible en effet mais les seules caractères spéciaux que j'ai mis sont les accents ou des apostrophes....

Re: Formulaire et envoie d'image

par @rthur » 08 déc. 2015, 09:19

A première vue je ne vois pas pourquoi ça ferait ça...
Essaye de trouver en faisant différents essais à partir de combien de caractères ça ferait ça.
Ça peut venir aussi d'un caractère spécial qu'il n'aimerait pas (guillemets par exemple)

Re: Formulaire et envoie d'image

par thierry72 » 08 déc. 2015, 09:11

Bonjour @rthur,
alors j'ai réussi à faire ce que je voulais dans l’immédiat, j'ai juste un petit soucis et je ne trouve pas la provenance...

J'ai opter pour PHPMailer et j'ai réussi à faire tout ce que je voulais cela fonctionne (PRESQUE) correctement...

le seul soucis que j'ai réside dans le textarea, j'écris (/- mots et cela marche impeccable mais quand j'écris plus de texte ou que je fasse un copier coller d'un texte plus long (je précise bien dans les deux cas, que je l'écrive ou pas) le texte n'est pas transmis dans l'email....
saurais tu me dire pourquoi?

code :
<textarea class="text" name="frmMessage" style="width:50%;height:150px;" placeholder="Ecrivez ici votre message" ></textarea>

le rendu dans le template:
{frmMessage}

j'ai aussi fait des essais en changeant le nom aucun résultat,
merci à toi

Re: Formulaire et envoie d'image

par @rthur » 07 déc. 2015, 18:31

Re: Formulaire et envoie d'image

par thierry72 » 07 déc. 2015, 18:11

arf..... bin je réceptionne avec Outlook et je peux pas voir la source.... mais je pense que je le reçoit bien en html car l'adresse e-mail jointe dans le mail est cliquable....
bref sa m'aide pas trop.... ;-)

Re: Formulaire et envoie d'image

par @rthur » 07 déc. 2015, 17:55

Ce qu'il faut c'est regarder la source de l'email ainsi généré pour voir si c'est conforme à ce que tu souhaites et détecter un éventuel problème.

Re: Formulaire et envoie d'image

par thierry72 » 07 déc. 2015, 17:29

Bonjour @rthur, merci d'avoir pris le temps de me répondre...
en effet, je suis d'accord avec toi et j'ai d’ailleurs fait plusieurs essais mais sans succès...
j'ai tenter aussi avec PHP mailer mais c'est pas ca non plus...

je me suis donc rabattu sur un formulaire php mais mon problème reste le même,

je te joint le code complet car je sèche complètement.....
tu remarquera que l'url complète était bien présente mais c'est comme si le "script" l'affichais comme un texte au lieux de m'afficher l'image, j'ai aussi essayer de mettre le "<img src='http://cspmr.fr/templates/allcss/carte- ... g/img1.jpg'>" dans le corps de l'e-mail en remplaçant le nom du fichier par la valeur qui lui correspond ".$list['f_6'][$f_6]." afin qu'il me change juste le nom de l'image mais celà ne fonctionne pas non plus...
HELP ;-)

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
$list['f_5']=array("Choisissez l'occasion"," Bon anniversaire"," Bonne journée"," Une pensée pour toi","Neutre");
$list['f_6']=array("<img src='http://cspmr.fr/templates/allcss/carte- ... g'>","<img src='http://cspmr.fr/templates/allcss/carte- ... g'>","<img src='http://cspmr.fr/templates/allcss/carte- ... g'>","<img src='http://cspmr.fr/templates/allcss/carte- ... g/img4.jpg'>");
$list['f_7']=array("courrier","lecture","tablette");
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=strip_tags(trim($f_2));
$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Nom complet &raquo; est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Email &raquo; est vide ou incomplet.</span>";
$errf_2=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_2)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_2=1;
}
}
if(strlen($f_3)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Parent &raquo; est vide ou incomplet.</span>";
$errf_3=1;
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Message &raquo; est vide ou incomplet.</span>";
$errf_4=1;
}
if($f_5==0){
$erreur.="<li><span class='txterror'>Le champ &laquo; Modèles &raquo; n'a pas été défini.</span>";
$errf_5=1;
}
if($f_6==""){
$erreur.="<li><span class='txterror'>Le champ &laquo; Img &raquo; n'a pas été défini.</span>";
$errf_6=1;
}
if($f_7==""){
$erreur.="<li><span class='txterror'>Le champ &laquo; Difusion &raquo; n'a pas été défini.</span>";
$errf_7=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:[email protected]\n";
$corps.="Nom complet : ".$f_1."\n";
$corps.="Email : ".$f_2."\n";
$corps.="Parent : ".$f_3."\n";
$corps.="Message : ".$f_4."\n";
$corps.="Modèles : ".$list['f_5'][$f_5]."\n";
$corps.="Img : ".$list['f_6'][$f_6]."\n";
//$corps.="img: " print '<img src="./img/'.$f_6.'" border="0" />';
$corps.="Difusion : ".$list['f_7'][$f_7]."\n";
// Pour envoyer un mail au format html, vous pouvez configurer le type content-type :
$headers = "MIME-Version: 1.0\r\n";
$headers .= "content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "X-Priority: 1\n"; // Urgent message!
if(mail("[email protected]", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
<!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>Document sans titre</title>
<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
</head>

<body>
<? if($ok_mail=="true"){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form' enctype='multipart/form-data'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b>&nbsp;ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Nom complet* :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Email* :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Parent* :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Message* :</span></td><td><textarea style='width:360 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' rows='6' cols='40'><?echo$f_4?></textarea></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Modèles* :</span></td><td><select style='width:200 <?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' size='1'>
<? for($id=0;$id<count($list['f_5']);$id++){
if($id==$f_5){$ct="selected";}
print("<option ".$ct." value=".$id.">".$list['f_5'][$id]."</option>");
unset($ct);
}?>
</select></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Img* :</span></td><td>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_6']);$id++){
if($id==$f_6){$ct="checked";}
print("<tr><td><input ".$ct." type='radio' name='f_6' value=".$id." border='0'></td><td><span class='txtform'>".$list[f_6][$id]."</span></td></tr>");
unset($ct);
}?>
</table>
</td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Difusion* :</span></td><td>
<table border='0' cellspacing='0' cellpadding='0'>
<? for($id=0;$id<count($list['f_7']);$id++){
if($id==$f_7){$ct="checked";}
print("<tr><td><input ".$ct." type='radio' name='f_7' value=".$id." border='0'></td><td><span class='txtform'>".$list[f_7][$id]."</span></td></tr>");
unset($ct);
}?>
</table>
</td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<? } ?>
</body>
</html>

Re: Formulaire et envoie d'image

par @rthur » 07 déc. 2015, 16:21

Bonjour,

Pour intégrer une image dans un mail 2 possibilités :
- la première c'est de simplement mettre l'url complète de l'image sur ton serveur : <img src="http://tonsite.com/dossier/image.jpg">
- la deuxième c'est d'incorporer l'image dans le contenu du mail, mais c'est + compliqué et ça ne fonctionne pas avec tous les clients de messagerie. Pour le faire, mon conseil est de passer par une librairie d'envoi d'email en PHP qui aurait cette option

Formulaire et envoie d'image

par thierry72 » 07 déc. 2015, 15:39

Bonjour à tous, alors voilà mon souci....
je suis en train de réaliser un formulaire avec des "champs texte" normale, des bouton radio, un menu déroulant et un choix d'image.....

Donc en gros, ce que je cherche à faire c'est :
que depuis le formulaire, la personne remplis les champs obligatoire (ça c'est ok avec vérification etc..)
qu'il sélectionne une catégorie dans le menu déroulant obligatoire ( ok aussi)
qu'il sélectionne une image depuis 4 choix possible et via un bouton radio (image sur le serveur c'est ok aussi)

le problème est que je reçoit bien tout par e-mail SAUF l'image qui est envoyer sous forme <img src='img1.jpg'>...
et moi je cherche à faire afficher l'image directement dans l'email de la personne avec les textes des champs qu'il à remplis....
donc que tout soit envoyer en email HTML (car je compte aussi faire une mise en page en css)

J'ai déjà fait pleins de recherches mais je ne trouve rien qui me permette d'arriver au résultat que je souhaite
merci à vous pour votre aide, vos conseils ou tuto.
Thierry