FORMULAIRE EMAIL AVEC PIECE JOINTE REPRIS DE LITTLEBUBU

VestaX Messages postés 374 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 24 avril 2013 - 28 sept. 2009 à 08:26
archi57 Messages postés 30 Date d'inscription dimanche 10 mars 2013 Statut Membre Dernière intervention 11 novembre 2017 - 28 juil. 2016 à 12:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50607-formulaire-email-avec-piece-jointe-repris-de-littlebubu

archi57 Messages postés 30 Date d'inscription dimanche 10 mars 2013 Statut Membre Dernière intervention 11 novembre 2017
28 juil. 2016 à 12:32
Bjr
comment récupérer uniquement le code qui concerne la pièce jointe ?
Bonjour, j'ai cette erreur : "Attaque potentielle par téléchargement de fichiers. Voici plus d'informations : Class Mail, method attach : file ./upload/23.jpg can't be found" je pense que ça viens de la taille de fichier. Pouvez-vous m'aider . Merci :)
catem Messages postés 17 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 20 août 2014
14 août 2014 à 16:10
Difficile à penser qu'une extension manquante bloque le script, et surtout je ne vois pas où insérer ça !
je vais ouvrir une question,
Merci quand même
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
14 août 2014 à 15:49
Si ça ne fonctionne pas... c'est que la fonction ne possède pas l'extension que tu essayes de mettre.. il te faut la rajouter dans le code...
Si malgré ça.. ça ne marche toujours pas... ouvre une QUESTION sur le forum directement (en expliquant en détail ce qui ne marche pas et ce que tu as essayé).
catem Messages postés 17 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 20 août 2014
14 août 2014 à 14:59
toutes sortes d'extensions; c'est pour une newsletter et les membres de l'assoc
Merci
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
14 août 2014 à 10:35
Et de quelle forme est cette adresse ?
Comment se termine t elle (.fr .com .eu.... ) ?
catem Messages postés 17 Date d'inscription mercredi 27 février 2008 Statut Membre Dernière intervention 20 août 2014
14 août 2014 à 09:54
Salut à tous
Super script, mis en place rapidement à exception d'un string BCC issue d'une requête MySQL... erreur Class Mail, method Mail : invalid address 111
J'ai retourné le problème dans tous les sens, pas moyen de trouver le format adéquate
Merci pour votre aide
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
9 juin 2014 à 15:45
Bonjour Albert,
Merci de poser vos questions directement sur le forum et non dans le commentaire des sources.
Bonjour et merci pour votre script !

Dans le formmail.php, ligne 258 et 261 la fonction ereg est déprécié. J'ai essayé de la remplacer par une preg_match comme ceci :

258 : if( preg_match( "/.*<(.+)>/", $address, $regs ) )

261 : if(preg_match( "/^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$/",$address) )

Hélas il est possible de rentrer n'importe quel texte et de ce fait, je ne récupère pas le mail du visiteur.

Une idée ?
elcapo125 Messages postés 2 Date d'inscription dimanche 12 décembre 2010 Statut Membre Dernière intervention 16 mars 2011
18 mai 2012 à 16:21
bravo
ringostare Messages postés 3 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 24 octobre 2009
5 oct. 2011 à 20:38
bonjour,
merci pour le script.
J'aimerai demander le nom du bonhomme, j'ai rajouté ceci dans mon code html :
<tr>
<td>Votre Nom:</td>
<td></td></tr>
<tr>
mais je ne sais pas ce que je dois faire dans le fichier "formail"

merci à vous.
lucaristide Messages postés 2 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 17 avril 2011
17 avril 2011 à 08:40
Pour DEADY512
Bonjour voici une solution
dans form.html
Ajouter Choix multiple

<select name="destinataire" size="3">
option value="adresse1@xxx.fr">Bureau</option>
<option value="adresse2@xxx.fr">webmaster1</option>
<option value="adresse3@xxx.fr">Webmaster2</option>
<option value="adresse4@xxx.fr">Webmaster4</option>

</select>

Remplacer dansformmail.php
$dest="adresse@xxx.fr";

par
$dest=$_POST['destinataire'];
lucaristide Messages postés 2 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 17 avril 2011
30 mars 2011 à 09:00
Bonjour
formulaire ok
Mais je souhaite ajouter:
-un Champ "Tel"
-et une liste déroulante "Adhérents, Renseignements"
J'ai crer les champs suppléméntaires dans form.html
Mais je n'arrive pas à envoyer les infos à l'adresse email

Merci de votre aide
Hary
deady512 Messages postés 7 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 29 mars 2011
29 mars 2011 à 10:01
Je cherche je cherche mais je ne tombe pas sur la bonne syntaxe !! Si quelqu'un peut m'aider pleas !!
deady512 Messages postés 7 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 29 mars 2011
28 mars 2011 à 17:22
Ok c'est déjà mieux !

Mais il me fais un mot comme quoi
"Class Mail, method Mail : invalid address"

La " function CheckAdresses( $aad ) " qui n'accepte pas mon adresse mail. Pourtant pas moyen de trouver plus banale ! XXXXXX@live.be
(et j'ai ajouté le be dans la " function ValidEmail($address) "

Quelqu'un a une idée ?! C'est assez important ! Merci !
cfndiaye Messages postés 18 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 26 mai 2011
28 mars 2011 à 16:38
essai
$dest = $_POST['desti'];
deady512 Messages postés 7 Date d'inscription jeudi 10 novembre 2005 Statut Membre Dernière intervention 29 mars 2011
28 mars 2011 à 12:57
Bonjour,

Votre script est génial !

J'aimerais juste ajouter une liste déroulante pour choisir l'adresse mail d'envoie. J'avais pensé à ceci dans

<td><select name="desti" size="1" style="width: 213px">
<option value="mail1@xx.fr" selected="selected">mail 1</option>
<option value="mail2@xx.fr">mail 2</option>
</select></td>

mais alors il y a une erreur de synthaxe du coté de formmail.php...

$dest = ($_POST['document.form.desti.value']);

Merci de me donner un coup de main !!
sartoz Messages postés 27 Date d'inscription vendredi 15 octobre 2010 Statut Membre Dernière intervention 12 août 2012
24 oct. 2010 à 20:10
par contre si tu pouvais mixer un autre code en utilisant ce code la: http://www.phpcs.com/codes/FORMULAIRE-INSCRIPTION-PRET-EMPOIE_27119.aspx
qui est super simple (qui ne permet pas d'attacher de piece jointe)

d'utiliser son code et d'y rajouter les lignes de ton code pour joindre un fichier je pense que ca ferais un sacré truc
sartoz Messages postés 27 Date d'inscription vendredi 15 octobre 2010 Statut Membre Dernière intervention 12 août 2012
24 oct. 2010 à 19:34
un bon gros 10 , bravo pour ton script j'avais besoin pour envoyer des fichiers via formulaire voila , c'est trouver
en plus tu n'obliges la personne de mettre expediteur , sujet , message
c'est vraiment genial! car moi enfaite j'avais juste besoin de la fonction envoi fichier alors du coup dans le form.html j'ai juste laisser:

<tr>

<td>Fichier joint:</td>

<td></td>

</tr>

<tr>

<td>

</td>

</tr>

ce qui permet de juste envoyer un fichier , et CA MARCHE , merci
jmaster Messages postés 2 Date d'inscription jeudi 19 août 2010 Statut Membre Dernière intervention 21 août 2010
27 août 2010 à 22:40
Bravo et merci beaucoup +++++
bobyones Messages postés 11 Date d'inscription mardi 16 janvier 2007 Statut Membre Dernière intervention 5 août 2010
5 août 2010 à 18:24
Fonctionne maintenant avec chrome. un grand bravo.
Ticlic Messages postés 2 Date d'inscription mercredi 19 octobre 2005 Statut Membre Dernière intervention 9 avril 2010
9 avril 2010 à 10:42
C'est moi qui te remercie. Non seulement ton script fonctionne à merveille, mais il est tellement bien renseigné qu'un grand débutant en PHP de 62 balais comme moi y retrouve ses billes. Je ne saurais assez insister sur l'importance des codes bien renseignés et du choix des noms des variables. Sur ce plan, rien ne tombe sous le sens. Et ton code est un modèle du genre.
cfndiaye Messages postés 18 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 26 mai 2011
9 avril 2010 à 10:29
Merci Ticlic
Ticlic Messages postés 2 Date d'inscription mercredi 19 octobre 2005 Statut Membre Dernière intervention 9 avril 2010
9 avril 2010 à 09:25
Un grand bravo pour le travail de correction du script original. Maintenant, ça marche nickel-chrome.
goyter Messages postés 2 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 23 mars 2010
23 mars 2010 à 11:17
Au temps pour moi, il fallait juste modifier le nom du fichier formmail.php
goyter Messages postés 2 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 23 mars 2010
19 mars 2010 à 16:51
Salut,

Super script, mais ça bloque pour moi chez ovh pour des pièces jointes de plus de 1 Mo est ce que par hasard quelqu'un aurait une piste ?

Merci à vous
cs_ludm Messages postés 133 Date d'inscription jeudi 1 janvier 2004 Statut Membre Dernière intervention 23 octobre 2011
21 févr. 2010 à 19:34
Fonctionne parfaitement sur serveur OVH mutualisé, merci!
deadrefused Messages postés 1 Date d'inscription vendredi 13 février 2009 Statut Membre Dernière intervention 18 janvier 2010
18 janv. 2010 à 16:01
Salut

Super le code marche bien pour moi.
Je veut juste rajouter des champs.
Ce n'est pas un problème dans la page form.html, c'est fait.
Par contre dans la page formmail.php j'ai suivi les instructions de LITTLEBUBU sur son post
mais ça ne marche que pour un champ en plus...
Comment récupérer plusieurs champs rajouté ?

Merci de votre aide

ALain
ibaom Messages postés 4 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 9 janvier 2009
20 déc. 2009 à 18:49
tres efficace,
merci
begin974 Messages postés 11 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 12 novembre 2009
12 nov. 2009 à 17:25
Bonjour,

j'ai testé ce code. il est super! Au faite ramanavy, j'ai pas de problème avec les boîtes hotmail.
Par contre lorsque j'insère le code dans une boucle pour envoyer à plusieurs destinataires récupérés dans une table de données, cela ne fonctionne pas. le mail est envoyé une seule fois.
Auriez vous une idée svp?
cs_ramanavy Messages postés 22 Date d'inscription lundi 12 décembre 2005 Statut Membre Dernière intervention 11 novembre 2009
11 nov. 2009 à 17:11
Après des tests, c'est la boîte au lettre qui n'accepte pas les fichiers attachés :
- sur hotmail.com ou hotmail.fr 0ko à chaque fois!
- sur gmail.com et orange.fr, tout fonctionne nickel

Encore merci pour le code.
cs_ramanavy Messages postés 22 Date d'inscription lundi 12 décembre 2005 Statut Membre Dernière intervention 11 novembre 2009
11 nov. 2009 à 16:45
Désolé, moi aussi je suis chez Ovh, mais le fichier fait 0 ko à chaque fois, quelqu'un peut me donner un coup de main ? est ce que ça marche pour toi CFNDIAYE ?
cfndiaye Messages postés 18 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 26 mai 2011
8 oct. 2009 à 17:06
fait un teste avec le script depuis ovh pour voir les résultat
6rilmx Messages postés 4 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 8 octobre 2009
8 oct. 2009 à 16:07
Mon hébergeur est OVH. Je n'ai pas vu comment régler ça. C'est dommage... je débute.
cfndiaye Messages postés 18 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 26 mai 2011
8 oct. 2009 à 15:40
tout dépend de la configuration du serveur qui va herberger ton code
6rilmx Messages postés 4 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 8 octobre 2009
7 oct. 2009 à 20:56
Désolé pour le double post, mais j'ai une autre question :
Si je configure celà, est-ce pour mon ordi uniquement ? Car je souhaiterais faire ça pour mon site en fait...
6rilmx Messages postés 4 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 8 octobre 2009
7 oct. 2009 à 20:53
Où puis-je configurer les types de fichiers pris en compte par le serveur ?
Je pense que c'est un soucis par rapport au type MIME ou au nom de fichier (?)
cfndiaye Messages postés 18 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 26 mai 2011
7 oct. 2009 à 20:13
SALUT 6rilmx regarde bien les paramettres de ton serveur de notre coté ça marche nikel
6rilmx Messages postés 4 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 8 octobre 2009
7 oct. 2009 à 17:33
Salut à vous.
Ce formulaire est propre, merci.

Mais j'ai une gêne, quand j'envoie un document, impossible de l'ouvrir, étant donné qu'il ne pèse que 0,0ko lol
pourtant, je retrouve bien son nom dans le mail que je reçois, mais il n'y a que le nom... "la gallerie photo ne peut pas afficher cette image car il s'agit d'un fichier vide" ...
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
29 sept. 2009 à 10:17
Salut Vestax,
je pense que tu mélanges deux choses :
Il y a d'un côté le gestionnaire de fichiers et de l'autre la gestion des mails. Le protocole mail comme tu dis ne peux en aucun cas supprimer un fichier.

C'est à toi de le supprimer manuellement à la fin de l'envoi de mail. Ex:

//construction des headers et du body du message puis envoi
mail($destinataire,$objet,$body,$header);
unlink($chemin_vers_fichier_upload);

Maintenant, tu peux aussi utiliser la classe proposé ici car il est marqué:
'Le fichier joint est uploadé sur le serveur puis détruit une fois le mail envoyé.'

Ce qui je pense répond à ton besoin
VestaX Messages postés 374 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 24 avril 2013
29 sept. 2009 à 08:32
masternico exact, la pièce jointe doit effectivement etre stockée sur le serveur. Mais lors de la réception du mail, elle ne doit plus y être. Et c'est ca que je cherche. J'ai pourtant bien étudié le protocole mail, mais je reste toujours sans réponse. Il faudrais que la pièce s'efface du serveur des l'ouverture du mail
cfndiaye Messages postés 18 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 26 mai 2011
28 sept. 2009 à 18:21
cool merci du conseil
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
28 sept. 2009 à 15:06
Il y a une technique qui consiste à modifier un champ caché par un script qui valide le formulaire avant de le faire partir vers le serveur et cela parce que les bots ne savent pas (encore) interpréter le javascript.

Explication:

Un bot de spam qui repère un formulaire d'envoi de mail sur un site va tenter d'activer le formulaire 'à la mano' en appelant la page fournie dans le paramètre action du form et en remplissant toutes les variables du formulaire. Ex:
<form action="send_email.php" method="GET">

</form>

Il au bot d'appeler la page avec les arguments suivant:
send_email.php?nom=zareazer&prenom=iouopiu&email=ozieuroz@ezr.com

Le script send_email.php n'y voit que du feu et envoi le mail au webmaster.

Par contre, il suffit de changer le form comme ceci:
<form action="send_email.php" method="GET" onsubmit="return valid_form(this)">

</form>

et de rajouter:
<script type="text/javascript">
function valid_form(form_pointer)
{
// on controle la validité des différents champs
// et si tout se passe bien on termine par ceci:
this.chkform = 'yep';
return true;
}

Ce qui fait que lorsque le bot trouve la page, il voit bien le champ caché mais il le laisse à la même valeur sans se douter que le script de validation va, lui, en modifier le contenu.

Du coup, dans le script send_mail.php, il suffit de tester si chkform == 'yep'. Sinon, c'est une tentative d'attaque par bot.

Simple mais efficace.
cfndiaye Messages postés 18 Date d'inscription vendredi 4 novembre 2005 Statut Membre Dernière intervention 26 mai 2011
28 sept. 2009 à 13:10
au fait ce code est juste une correction que j'ai apporté sur celui de littlebubu
pourquoi je l'ai fait:
au fait j'avais un client qui avais besoin d'un formulaire avec fichier joint pour que ses candidats puissent lui envoyer leur cv.
pour la sécurité je ne suis pas cassé la tete le laisse soin aux antivirus et antispam lol
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
28 sept. 2009 à 09:35
Même dans le cas de 'vraies' pièces jointes comme tu dis, il faut bien que le fichier soit transmit au serveur distant avant de pouvoir être attaché au mail qui va partir. Ou alors, il existe une subtilité de php que je ne connais pas. Donc de toutes façons, il faudra bien 'uploader' le fichier...

Pour ce qui est de la sécurité dont je parlais, c'est par rapport à cette phrase:
'La nouveauté est que ce script permet au visiteur de mettre un fichier joint avec son message'

Cela sous entent que cette fonctionnalité est laissé à disposition de TOUS les visiteurs du site. Personnellement, en tant que webmaster, je ne me vois pas laisser quelqu'un me bombarder de mail avec pièce jointe car c'est donner la possibilité de recevoir du spam voir même des virus...

Ce script à plus d'intérêt au seins d'une console admin dans laquelle un utilisateur authentifié peut envoyer un ticket de support avec une pièce jointe concernant son problème.

>>'Ou alors faudrais une partie admin permettant de nettoyer les fichiers à chaque fois.'
apparemment le script efface tout seul le fichier temporaire uploadé, donc pas besoin de se tracasser avec le nettoyage.
VestaX Messages postés 374 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 24 avril 2013
28 sept. 2009 à 09:08
Ben quand tu envoi des mails avec pièces jointe via outlook ou autre, c'est pareil. La sécurité n'est pas pour autant meilleure. J'en ai déjà vu des sources avec "vraies" pièces jointe. et non pas "upload". Car le problème de l'upload, c'est qu'il faut faire le nettoyage a chaque fois coté FTP. C'est ca le problème.

Ou alors faudrais une partie admin permettant de nettoyer les fichiers à chaque fois.
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
28 sept. 2009 à 08:39
je ne suis pas de cet avis, il s'agit réellement d'un attachement... avec upload préalable mais ça c'est comme pour tout les webmails... je le trouve plutôt pas mal écrit, il faudra que je le teste pour voir comment il fonctionne...
Par contre, l'idée de laisser a un utilisateur inconnu la possibilité de balancer une pièce jointe... glups... ça me fait froid dans le dos question sécurité...
VestaX Messages postés 374 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 24 avril 2013
28 sept. 2009 à 08:26
Hmm, c'est bien ce qu'il me semblait. Ce n'est rien de plus qu'un formulaire avec upload de fichier, et non pièce jointe. C'est ca que je recherche avec pièce jointe. Mais vraie pièce jointe :)

Sinon pour ta source, le code est propre, mais vraiment beaucoup beaucoup beaucoup de lignes juste pour un simple envoi!!!
Rejoignez-nous