FORMULAIRE PERMETTANT D'ENVOYER UN E-MAIL (AVEC PIÈCES JOINTES) DEPUIS UNE PAGE

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 12 sept. 2005 à 22:41
donperez Messages postés 1 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 15 février 2011 - 10 févr. 2011 à 19:33
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/33766-formulaire-permettant-d-envoyer-un-e-mail-avec-pieces-jointes-depuis-une-page

donperez Messages postés 1 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 15 février 2011
10 févr. 2011 à 19:33
BS
BS
Je viens de mettre en ligne sur mon serveur le formulaire en question et voici les erreurs signalés.
-------------------------oooooo-----------------------
+OK POP3 ready <1513414009.1297360860@pop1-g25.free.fr>

Warning: copy(../PHPMail_TempUpload/Image-38.jpg) [function.copy]: failed to open stream: No such file or directory in /public_html/Formu_piece_jointe/PHPFormMail.php on line 102
Class Mail, method attach : file ../PHPMail_TempUpload/Image-38.jpg can't be found
--------------------------oooooo-------------------------

Donc si quelqu'un veux bien me donner un coup de main pour résoudre le problème, moi je me perds pas mal dans les entrailles du code « php »

Un grand merci
Cordialement
Perez
cs_Stormo Messages postés 1 Date d'inscription lundi 28 décembre 2009 Statut Membre Dernière intervention 20 avril 2010
20 avril 2010 à 16:27
Hello,

je suis un peu nul en codes sources...
Pour la version ".htm" où faut-il mettre l'adresse email du destinataire du formulaire ?
wlperso Messages postés 9 Date d'inscription lundi 20 septembre 2010 Statut Membre Dernière intervention 20 septembre 2010
23 avril 2009 à 11:25
Bonjour,

je ne connais pas grand chose à PHP et au fonctionnements SMTP ... je suis très débutant.
J'essaie de configurer le script pour fonctionner sous hébergement gratuit iFrance + envoi avec SMTP GMAIL, mais vraiment sans succès ; je n'arrive même pas à décomposer pour débugger le fonctionnement.
Bref un vrai nul !
Quelqu'un peut-il m'aider ?
Merci d'avance
horinal Messages postés 11 Date d'inscription vendredi 6 février 2009 Statut Membre Dernière intervention 18 février 2011
2 févr. 2009 à 12:14
Bonjour
J'aimerais demande un aide s'il vous plait

je suis un débutant du code, membre d'un groupe de bénévole en Afrique on viens de créer notre site internet d'association et on aimera qu'on puisse permettre a nos visiteur d'envoyer un pièces joints directement sur nos formulaire.
si il y a une personne de bonne volonte veuillez s'il vous nous aide. notre e-mail: info@horinal.com et notre site internet www.horinal.com details sur le formulaire
Nom:
Prénom:
Ville:
Pays:
Tél:
Sujet:
Message:
et Pièeces Joints:

merci de votre aide veuillez directement nous envoyer le code sur info@horinal.com / info@groupthefuture.com ou horinal@live.com
merci
lcomb Messages postés 11 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 10 mai 2008
5 juil. 2008 à 18:36
Salut les gars je connais bien ce code j ai une question
je me suis fais un formulaire en local qui renvois sur un phpform sur mon site en post ca marche tout bien sauf le fichier joint je crois c est par ce que je suis en local et je post sur mon site est ce que c est ca ? C'est de la logique pure .Comment faire pour develloper en local avec une connection internet ,est ce en changeant l adresse de l uplaod ca marcherai ? je vous laisse j ai un rendez vous si je cherche un gars qui devellope en solution mail pour programmer emsemble merci a plus
cs_skualpa Messages postés 1 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 16 mai 2008
16 mai 2008 à 22:29
?a faisait une plombe que je cherchais un tel script, et il fonctionne tr?s, de plus, si comme mentionn? on ne dispose pas de la fonction mail() on a une alternative.
Merci ? son auteur : triumphs.
sectumsempra844 Messages postés 6 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 24 avril 2008
19 mars 2008 à 19:46
oubliez mon commentaire précédent, merci !!! ;-) lol
Je n'avais pas vu que cette question avait déjà été posée et résolue !!

Toutes mes excuses !
;-)
sectumsempra844 Messages postés 6 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 24 avril 2008
19 mars 2008 à 19:08
Bonjour,

Est-il possible d'envoyer plusieurs pièces jointes avec ce script ?
Je suis en train de créer un formulaire de contact qui doit permettre d'envoyer de 1 à 3 pièces jointes (des images en l'occurrence).
J'ai beau chercher, je ne trouve que des scripts permettant d'envoyer une unique pièce jointe et comme je n'y connais absolument rien en php, j'ignore si je peux modifier cela et si oui, comment.... ;-)

Merci pour vos avis et lumières sur la question !
lcomb Messages postés 11 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 10 mai 2008
25 janv. 2008 à 08:13
Bonjour a tous suite a mes galere je tiens a vous dire que le plus simple c est

1.Mettre le repertoire upload a la racine de son racine chmod 777

2.Mettre"../upload/"dans PHPFormMail.php

3.Ce script marche

4.Des amieliorations sont meme possible a vrai dire

5.J y travaille a plus
henribellot Messages postés 1 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 11 décembre 2007
11 déc. 2007 à 15:59
Bonjour,

De mon côté, j'ai une erreur :
Notice: Undefined variable: email in C:\Inetpub\wwwroot\test\mailing\PHPFormMail.php on line 63

Et de fait, on ne récupère nul part les données envoyées par le formulaire (email, message...)...

C'est normal ou ai-je raté une étape ?...

Merci à vous pour vos réponses !!

Henri
cs_guibon Messages postés 4 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 11 décembre 2007
10 déc. 2007 à 12:36
Bonjour,
Moi je débute, et j'ai le droit à cela
Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 14413 is not allowed to access /home10/eq10603/eq31963 owned by uid 0 in /home10/eq10603/eq31963/html/formmail.php on line 387

Warning: copy(../upload/mots clés.doc): failed to open stream: No such file or directory in /home10/eq10603/eq31963/html/formmail.php on line 387
Class Mail, method attach : file ../upload/mots clés.doc can't be found

Je crois pouvoir chercher longtemps, chemin d'accès, problème coté serveur ?
vraiment là je bloque, je ne vois rien.
merci beaucoup si un coup de main est possible
Cordialement
Eric
triumphs Messages postés 19 Date d'inscription dimanche 30 mai 2004 Statut Membre Dernière intervention 30 septembre 2013 3
7 déc. 2007 à 18:19
[En réponse à deezdynasty]

Comme je l'ai dit plusieurs fois, ce script fonctionne. Néanmoins, certaines configurations supplémentaires (fortement dépendante de l'hébergeur dans la plupart des cas) sont inévitables! Par exemple, selon les hébergeurs, les en-tête des mails sont vérifiées; ce qui implique un formalisme imposé par l'hébergeur. On aura alors soin de comprendre que je ne peux pas intégrer à ce code toutes les finesses, nuances et subtilités nécessaires pour le rendre compatible avec l'ensemble des hébergeurs!!!

En somme, je pense qu'il y a TOUJOURS quelque chose à faire. Dans ton cas, deezdynasty, j'essayerai de supprimer toutes les fioritures inutiles de l'en-tête du mail pour ne laisser que ce qui est important (l'émetteur, le destinataire et l'objet du mail). Toutefois, avant d'entreprendre des modifications dans le code, renseigne-toi auprès de ton hébergeur pour savoir si la fonction 'mail' est activée. Les hébergeurs gratuits étant une mine d'or pour les spammeurs, certains ne permettent l'envoi de mail qu'au travers de script cgi qu'ils fournissent.

Voilà. J'espère pouvoir aiguiller ceux qui doutent et ceux qui sont perdus.
Bon code!
deezdynasty Messages postés 1 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 7 décembre 2007
7 déc. 2007 à 17:04
salut a tous,

mauvaise nouvelle pour moi: je croyais trouver un script qui marche parfaitement, mais a part la redirection vers la page de remerciements, il ne se passe pas grand chose -- pour ainsi dire, RIEN DU TOUT!
Je ne recois pas les mails.
Je pense avoir edite tous les parametres correctement, j'ai cree un fichier upload et un PHPMail_TempUpload en CHMOD 777 a la racine de mon site pourtant.
mon hebergeur est Xdir (gratuit).

Y'a t-il qqchose de plus a faire ou bien ca marchera jamais?!

merci de vos reponses
DOWMEN1 Messages postés 2 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 28 novembre 2007
28 nov. 2007 à 14:37
Mon Probleme c'est comment insérer le code php dans le code pour formmail et où je devrais insérer mon adresse e-mail.
j'ai fait mon premier pas vers création des page web
DOWMEN1 Messages postés 2 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 28 novembre 2007
28 nov. 2007 à 14:27
bjour:
je vien de créer ma site web, et je vien bien de m'aider pour insérer un formulaire permet de m'envoyrer dés ma page web vers ma boite e-mail.des email des visiteurs.
j'ai bein telecharger le fichier zip,mon problème c'est comment faire pour inséer le bon code dans mon crétauer de page web Namo web editor.
j'ai besoin de votre aide SVP.
roseline_ch Messages postés 4 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 21 septembre 2007
21 sept. 2007 à 09:16
Merci TriumpHS pour tes commentaires!
En effet, mon ajout était "un petit truc fait dans l'urgence", alors que ce que tu proposes est pro :-)

Et en plus, ma version ne fait que de vérifier si le champs est rempli ou pas, alors que tu fais le contrôle "complet" sur le mail avant de le valider.

Je vais en effet prendre le temps de le lire comme il faut et le tester!

Encore merci
Amicalement
Roseline
triumphs Messages postés 19 Date d'inscription dimanche 30 mai 2004 Statut Membre Dernière intervention 30 septembre 2013 3
20 sept. 2007 à 21:58
[En réponse à roseline_ch]

Bien que ton code doive (théoriquement) fonctionner correctement, le fait de tester les champs de ton formulaire après l'avoir posté n'est pas du tout une bonne solution (surtout s'il n'y a pas de stockage persistant prévu). En effet, le code que tu ajoutes n'est malheureusement ni générique, ni optimisé! De plus en imposant un premier POST du formulaire avant de tester les champs, du ralenti le traitement du formulaire et tu alourdi la navigation de l'utilisateur.

Afin de tester le formulaire et de ne pas effectuer de POST dans le cas où les champs ne sont pas correctement renseignés, il te faut coder ta routine de test en JAVASCRIPT; ceci permet d'effectuer les tests côté client (avant le POST) et d'assurer que le traitement du formulaire, côté serveur (après le POST), se fasse toujours sur des champs correctement remplis.
Il faut, de plus, remarquer que coder des 'if' en cascade (comme tu as fait) n'est pas ce qui a de plus esthétique; utilise plutôt un 'switch' (cf.: documentation JAVASCRIPT) qui te permet de rendre ton code plus générique, plus lisible, plus simple à maintenir à jour et plus... ... plus... En somme, dès que tu as plus de deux 'if' à cascader, utilise un 'switch'.

Voici donc un exemple pour (un peu) mieux comprendre:

_____________________________________Le code du formulaire________________________________________
<form name="formMail" id="form" vname="formMail" action="/PHP/PHPFormMail.php" onSubmit="return(formCheck(this));" method="post" enctype="multipart/form-data">
Votre adresse e-mail,
,

----

Sujet,
,

----

Message,
<textarea rows="15" name="msg" cols="45"></textarea>,

----



</form>

________________________________Le script de test (JAVASCRIPT)____________________________________
<!--//
/*********************************************************
Required field(s) validation- By NavSurf
Visit NavSurf.com at http://navsurf.com
Visit http://www.dynamicdrive.com for this script
---
Modifier par TriumpHS
http://www.devmen.net
Date: 20.09.2007 (EU date format)
**********************************************************/

function formCheck(formobj){

// Enter dialog messages
var alertMsgOccurence = "";
var alertMsgMistakeValue = "";

var obj_is_set

for (var i = 0; i < fieldRequired.length; i++){
var obj = formobj.elements[fieldRequired[i]];
var obj_value = fieldRequired[i];
var obj_type = fieldTypeValue[i];
obj_is_set = false;
/*
Contrôle si les champs obligatoires sont renseignés
*/
if (obj){
switch(obj.type){
case "radio":
case "select-one":
if (obj.selectedIndex -1 || obj.options[obj.selectedIndex].text ""){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
case "select-multiple":
if (obj.selectedIndex == -1){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
case "text":
case "textarea":
case "hidden":
if (obj.value "" || obj.value null){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
default:
if (obj.value "" || obj.value null){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
}
/*
Contrôle du format des données saisies.
Le contrôle se fait sur chaque champ.
*/
var s;
var j = 0;
var ValueLength;
if(obj_is_set){
switch(obj_type){
case "eMail":
// on choisit de ne pas tester les domaines...
var testDomaine = false;
var invalidaddress=new Array()
invalidaddress[0]="hotmail"
invalidaddress[1]="rocketmail"
invalidaddress[2]="yahoo"
invalidaddress[3]="zdnetmail"
invalidaddress[4]="caramail"
invalidaddress[5]="excite"
invalidaddress[6]="mailexcite"
//extend or shorten this list if neccessary

var testresults
var invalidcheck=0;
var str=obj.value
var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
if (filter.test(str)){
var tempstring=str.split("@");
tempstring=tempstring[1].split(".");
for (index=0;index 1){
alertMsg = "Le ou les champs suivants n'ont pas été saisi:\n" + alertMsgOccurence;
}
else{
alertMsg = "Tous les champs ont été initialisé...\n";
}
if (alertMsgMistakeValue.length > 0){
alertMsg2 = "Les données suivantes sont incorrectes\n" +
" ou mal saisies:\n" +
alertMsgMistakeValue;
}

if (alertMsgOccurence.length 0 && alertMsgMistakeValue.length 0){
return true;
}
else{
alert(alertMsg + "\n" +alertMsg2);
return false;
}
}

//-->


Le script de test se trouve dans un fichier .js (par exemple, 'valdate.js') et doit être chargé grâce à la ligne suivante (à placer dans le header de la page):
<SCRIPT language="javascript1.4" type="text/JavaScript" src="/repertoireDeTesScripts/validate.js"></SCRIPT>

Ensuite, il faut initialiser certaines variables du script en déclarant les déclarants (à la fin de la page, après le tag </html>:
<script type="text/javascript" language="JavaScript1.2">
<!-- //
//1) Noms des champs obligatoires
var fieldRequired = Array("e", "msg");
//2) Description des champs (qui apparaitra dans une boîte de dialoque)
var fieldDescription = Array("Votre adresse e-mail", "Le message\n(un e-mail sans message est\nconsidéré comme spam...)");
//3) Type des champs obligatoires
var fieldTypeValue = Array("eMail", "string");
// -->
</script>



Ce script est un peu plus puissant (et complexe!) que celui que tu as écrit... Il a surtout l'avantage d'être (à partir du moment où on a passé 1h à le lire) facilement réutilisable. En effet, comme tu a pu le remarquer, une partie des tests est destinée à des champs qui n'apparaissent pas dans ce formulaire; ceci est dû au fait que j'utilise ce même script pour d'autres formulaires simultanément. Seuls l'initialisation des variables diffère d'un formulaire à un autre.

En résumé, la technique que je te propose, même si elle n'est pas la meilleure (restons modeste), me semble préférable à la tienne.
Je ne cherche pas par là à dénigrer ton travail (je respecte plus que tout tes efforts de recherche), mais je pense que mon point de vue peut t'aider à améliorer ton script de test.

Voilà. Je crois que j'en ai dit suffisamment. J'espère que je n'ai pas dégouté quelqu'un avec tout ça.
Pour ceux qui ont des remarques, n'hésitez pas; j'ai moi aussi des choses à apprendre.

Bon code!

TriumpHS
roseline_ch Messages postés 4 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 21 septembre 2007
20 sept. 2007 à 18:15
Bonjour à tous,


J'ai pu installer le tout sans problème, mais il fallait absolument que j'ai un contrôle de certains champs.
Après quelques recherche (merci à ceux qui ont précédemment ouvert la voie!), voici ce que j'ai ajouté (attention: fonctionne en PHP5):
1) au tout début du code, avant le PARAMETRAGE DU SCRIPT
...................................
// CONTROLE DES CHAMPS //

if ($nom "" & $email "")
{
echo("Merci de mettre votre e-mail et votre nom !");
}
elseif ($nom == "")
{
echo("Merci de mettre votre nom !");
}
elseif ($email == "")
{
echo("Merci de mettre votre e-mail !");
}
else{

// FIN CONTROLE DES CHAMPS //
.....................

Remarque: mettez exactement le nom du champ de votre formulaire!
Et si vous voulez ajouter d'autres champs, juste ajouter un "elseif" avant le "else" ;-)

2) Surtout ne pas oublier de mettre à la dernière ligne, avant le "?>"
......
}
......

Et voilà, le tour est joué!
cs_jjdagadir Messages postés 127 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 6 mars 2009
28 janv. 2007 à 19:34
Bonjour Triumphs,

Merci encore pour ce code super, une petite question, en dehors du MAX_FILE_SIZE, aurais tu un tuyau pour donner une alerte péalable à l'envoi au traitement par le PHPFormMail.php en cas de fichiers trop lourds ? Car il les encaissent, fait son boulot, mais envoit le mail vide sans en avertir l'internaute.
J'en upload 3.

KENAVO
achou_ma Messages postés 2 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 4 décembre 2006
24 janv. 2007 à 12:58
bonjour
j'ai ,le meme probleme que CBENISTI et LNICOS
je ne reçoit rien sur mon mail juste : Message depuis votre site web:
pas de piece jointe ni meme la valeurs des champs renseignés.
cs_jjdagadir Messages postés 127 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 6 mars 2009
11 janv. 2007 à 01:48
Bonsoir Sersib,

Comme je le mets plus haut, va récupérer le code complémentaire donné par Triumphs sur la source de LiTtLeBuBu
en réponse à snake0000 :
http://www.phpcs.com/code.aspx?ID=22574
Son code est très bien et fonctionne parfaitement avec 2, 3 et surement plus de fichiers joints, méfie toi de la limite d'upload de ton hébergeur, et prend bien soin de mettre dans le script les noms corrects et tous différents : NomFichier puis NomFichier2 puis NomFichier3 etc...
N'oublie pas de les nommer de cette manière dans ton form également.
Bon courage, çà vaut le coup, le résultat est extra, allez tous ensemble :
MERCI TRIUMPHS
KENAVO
cs_sersib Messages postés 2 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 10 janvier 2007
10 janv. 2007 à 20:05
Bonsoir,
Je suis très satisfait de ce sympatique script, mais malgrès plusieurs essais, je n'arrive pas a envoyer 2 pièces jointes...
Je suis preneur d'un ptit peut plus de details svp..
Merci d'avance.
cs_jjdagadir Messages postés 127 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 6 mars 2009
5 janv. 2007 à 17:24
Merci beaucoup Triumphs et bien sûr LiTtleBuBu,

Ce script fonctionne aux petits oignons, j'ai récupérer dans les nombreux commentaires le bout de script que tu as fait pour snake0000 afin d'uploader deux fichiers en même temps, cela marche parfaitement bien, j'avais besoin pour ma part de trois fichiers à uploader, c'est parfait aussi.
Tu as raison il y peut y avoir beaucoup de développements pour ce script.

Encore merci et surtout bravo, tu m'enlève une épine du pied..

KENAVO et BLOAVEZ MAD
cs_ricob Messages postés 13 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 3 novembre 2006
3 nov. 2006 à 17:06
Probleme de l'adresse resolu ! C'etait juste une erreur dans ma modif sinon pour les fonctions a ajouter , ce serait cool .

Merci a tous
cs_ricob Messages postés 13 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 3 novembre 2006
3 nov. 2006 à 16:15
Le script fonctionne tres bien mais il y a juste n truc qui denote , ce n'est pas l'adresse de l'expediteur qui s'affiche mais celle de mon compte free ou est stocké le script .

Sinon ajouter une fonction de reponse automatique serait super et aussi indiquer l'adresse ip de l'emetteur

Avis au codeur...


Merci bcp
onError Messages postés 1 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 26 octobre 2006
26 oct. 2006 à 20:16
Hello,

Merci triumphs (et du coup LiTtleBuBu) pour ce script qui fonctionne et prend en compte les notions d'Header Injections ! 9 out of 10 pour moi !
pepito007 Messages postés 2 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 27 septembre 2006
27 sept. 2006 à 12:14
Bon les gars... ca m'a l'air d'un bordel cette histoire... mais enfin, je ne vais pas etre mauvaise langue, j'ai fini par reussir à faire fonctionner le script d'envoi de mail avec upload de piece jointe, le tout sous serveur Amen... MAIS mais... et c'est là que je casse l'échafaudage... la piece jointe arrive directement dans le corps du message ! (des lignes et des lignes de code s'affichent dans le corps... pour un fichier .jpg par exemple)...

j'ai regardé un peu partout, mais personne ne parle de ca...
à bon entendeur

en tout cas, que d'energie developpée pour ce développement... !
à +++ et merci
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
16 sept. 2006 à 20:05
Salut,
Je veux juste dire à Mr.: ghostleretour qu'après une petite visite a ton siteWeb http://www.carolobiker.com/
j'ai eu cette erreur :
Warning: unlink(../upload/formulairePHP.txt): Permission denied in d:\www\gberge.be\htdocs\carolobiker\mail\formmail.php on line 275
Alors?
cs_oliander2004 Messages postés 1 Date d'inscription samedi 17 décembre 2005 Statut Membre Dernière intervention 11 août 2006
11 août 2006 à 23:25
Bonjour tres pratique ce scripte :-) Simplement une question comment peut on rajouter des champs pour joindres des pièces et combien au max ? merci d'avance Julien
cs_piege Messages postés 2 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 27 juin 2006
27 juin 2006 à 20:08
salut tout le monde!!
je trouve le script est impecable et marche a merveil!! tout ce que je demande c coment rajouter d autre champ sur le formulaure par exempl nom prenom tel et autre piece join sachan que je suis nule en programation php...


merci d avance
wildover Messages postés 4 Date d'inscription vendredi 12 mai 2006 Statut Membre Dernière intervention 12 mai 2006
12 mai 2006 à 18:37
la ligne 5
wildover Messages postés 4 Date d'inscription vendredi 12 mai 2006 Statut Membre Dernière intervention 12 mai 2006
12 mai 2006 à 18:17
Salut j'ai téléchargé ce code car j'ai besoin de pouvoir laisser les visiteur de mon site menvoyer des images. je n'ai rien touché sauf la ligne du phpformmail.php où j'ai mis mon email. je n'ai pas besoin de vérifier la validité des adresses ni de rien d'autres, je souhaites juste que des .txt et.jpg puissent m'être envoyés depuis mon site.j'ai uplodé les trois fichiers sur mon site et quand j'essaie d'ouvrir formMail.htm jobtiens le message suivant 403 forbidden. merci de m'expliquer car tout ce que j'ai fait jusqua présent c de la mise en page et un formulaire d'inscription. Merci d'avance. je répète que g juste besoin de la fonction parcourir et pas des vérifications de mail.
reza999 Messages postés 3 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 31 mars 2006
31 mars 2006 à 11:32
salut trumph.. merci d'avoir répondu.. c'est pas une critique sur ton code qui est certainement parfait! ni un jugement de valeur etc.. si tu es debutant alors moi qu'est ce que je suis!!
Bon et je cherche crois pas.. j'ai testé pleins de cods, lu pleins de forums et j'essaie juste maintenant d'economiser le prix d'un bouquin qui m'apportera pas forcement la solution concrete...

Au cas ou voila les messages d'erreurs que je prends apres les modifs à faire decrite ici:
(en esperant que je pollue pas l'endroit!!)

...............................................................................................

Warning: mail(): Invalid mail. to = [q] in /var/www/sdb/3/3/sp.contact/classMail.php on line 181

Warning: copy(./upload/eBay (1).JPG): failed to open stream: No such file or directory in /var/www/sdb/3/3/sp.contact/PHPFormMail.php on line 102
Class Mail, method attach : file ./upload/eBay (1).JPG can't be found

................................................................................................

j'ai créé un file upload vide au niveau des files phpmail et classmail et mon bout de cod phpmail est:

................................................................................................

// Attachement du fichier:_
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)){
// copie temporaire du fichier joint.
copy($NomFichier, "./upload/$name");
}
$m->Attach( "./upload/$name", "application/octet-stream" );
}

// Envoi du mail:_
$m->Send();

// Destruction de la copie temporaire de la pièce jointe:_
if ("$NomFichier"!="") {
Unlink("./upload/$name");

...............................................................................................
et voila la ligne 181 de classmail

mail($adresse, $ok_sbj, $ok_msg, $headers);

...............................................................................................


Wats the matter doc?
triumphs Messages postés 19 Date d'inscription dimanche 30 mai 2004 Statut Membre Dernière intervention 30 septembre 2013 3
31 mars 2006 à 01:35
[en réponse à reza999 (et à ceux qui ont des difficultés au niveau du français!)]

As-tu pris le soin de lire les commentaires que j'ai écrit (en haut de cette page)?
As-tu pris le soin de lire les commentaires que LiTtleBuBu (http://www.phpcs.com/code.aspx?ID=22574) a écrit (en haut de sa page)?
As-tu pris le soin de jeter un coup d'oeil dans le code?
As-tu pris le soin de te renseigner au moyen de documentations (tellement abondantes sur internet)?
... ...
As-tu pris le soin de comprendre comment fonctionne un ordinateur?

Je crois que oui, puisque tu postes un commentaire très intéressant et qui, de plus, permet de faire évoluer mon code...

Dans le cas contraire, je crois qu'il va falloir mettre certaines choses au point! Reprenons ton poste (que j'ai pris soin de relire plusieurs fois):

1:"
Hello, je crois que je rencontre les meme problemes que la plupart des debutants en php pour la creation de formulaire (sans outlook)... "
Je suis moi-même débutant en PHP; je ne vois tout de même pas pourquoi outlook intervient là-dedans. De plus, d'après les postes, je n'ai pas vu tant de débutant avoir les mêmes problèmes que toi. Mais bon, puisque tu le dis...

2:"
- redirection vers une page html apres validation du form
> je rajoute Header("Location: http://monurl.htm ");
> et je prends un message du genre WARNING: etc..."
Il me semble que j'avais mis assez de commentaire dans le code pour faire cette modification; il faut croire que ce n'est pas le cas.
Sache tout de même que si tu ne me fais pas part du message annoncé par le WARNING, je ne serai pas en mesure de t'aider.
Tu sais, le plus étonnant dans ce problème, c'est que je ne me souviens pas d'une fonction 'Header' qui s'utiliserait comme suit: Header("Location: http://monurl.htm ");
Où as-tu vu qu'il fallait 'pervertir' le code de la sorte?!?!?
Je peux donc affirmer que ton WARNING vient du fait que tu utilises une fonction (qui est destinée, il me semble, à créer l'en-tête d'un e-mail) à mauvaise escient!

3:"
- ajout d'une piece jointe (TRES IMPORTANT, c'est pour un client)
> comprends pas le coup du dossier UPLOAD, quoi dedans? ou? etc..
> comprends pas ce qui faut modifier sur le zip de ce post
> comprends rien!"
Bon ben je vais être franc. JE N'AI PAS ENVIE DE M'ATTARDER A EXPLIQUER CE QU'EST UN REPERTOIRE! Prend un bouquin (genre Informatique pour débutant, version optimisée pour WorkBench)!
Si tu ne comprends pas pourquoi on dont uploader un fichier pour l'envoyer par e-mail, là, je peux t'aider. En fait, le fichier est sur l'ordinateur-client. Ce dernier doit le transmettre (l''upload' à proprement parlé) à un ordinateur-serveur afin de permettre à ce même ordinateur-serveur d'acheminer l'ensemble (e-mail + fichier) au destinataire.
De ce fait, j'ai décidé de créer un REPERTOIRE (nommé 'PHPMail_TempUpload' d'après mon code) sur l'ordinateur-serveur et dans lequel le fichier transmis par l'ordinateur-client y serait placé "temporairement" avant d'être envoyé au destinataire.

4:"
POuvez vous SVP me filer un truc super basique pour que ça marche??"
Ce n'est pas le code qui est complexe! C'est le temps passez à essayer de le comprendre qui est trop court!
Il te faut bien lire les commentaires sur le code écrit par LiTtleBuBu (http://www.phpcs.com/code.aspx?ID=22574). Et si c'est trop compliqué... ...
... ...
(Je ne vois pas d'autre solution. Désolé.)

Bon ben je pense que tu as compris? J'accepte volontier une critique sur mon code, mais il faut que se soit un minimum CONSTRUCTIF!

ABE.

TriumpHS
[PS: Bon code!]
reza999 Messages postés 3 Date d'inscription mercredi 29 mars 2006 Statut Membre Dernière intervention 31 mars 2006
30 mars 2006 à 14:14
Hello, je crois que je rencontre les meme problemes que la plupart des debutants en php pour la creation de formulaire (sans outlook)...
pour les basiques j'y suis parvenu mais GROSSE GALERE pour:

- redirection vers une page html apres validation du form
> je rajoute Header("Location: http://monurl.htm ");
> et je prends un message du genre WARNING: etc...

- ajout d'une piece jointe (TRES IMPORTANT, c'est pour un client)
> comprends pas le coup du dossier UPLOAD, quoi dedans? ou? etc..
> comprends pas ce qui faut modifier sur le zip de ce post
> comprends rien!

POuvez vous SVP me filer un truc super basique pour que ça marche??

par mail sebareza@hotmail.com

pour le reste bonne bourre!

the deb
pogonaworld Messages postés 4 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 26 février 2006
26 févr. 2006 à 18:24
voila l'adresse www.sitesreptiles.fr.tc
sinon voici mon autre site www.universdesreptiles.fr.tc
pogonaworld Messages postés 4 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 26 février 2006
26 févr. 2006 à 12:00
merci je le fait et je met l'adresse ici apré
ghostleretour Messages postés 20 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 12 août 2009
25 févr. 2006 à 20:34
Voila... Email envoyé avec un zip (fichiers nécessaires) ainsi que les explications nécessaires.

Bonne chance

Stéphane
pogonaworld Messages postés 4 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 26 février 2006
25 févr. 2006 à 19:57
message a "triumphs"

je te remercie mais comme tu voit je commence ds le html et le php
je suis désolé si je t'enuis

je voudrait savoir si tu pourait faire un copier coller de ta page 'classMail.php'en m'expliquant ce kil fo ke je change dans mon fichier 'classMail.php' et tu me l'envoi par mail

se serait très gentil de ta par
triumphs Messages postés 19 Date d'inscription dimanche 30 mai 2004 Statut Membre Dernière intervention 30 septembre 2013 3
25 févr. 2006 à 14:32
[en réponse à kbstudios]
Je ne sais d'où tu sors cette fonction 'move_uploaded_file'... ... Es-tu sûr que c'est bien de ma source dont tu parles?

Dans tous les cas, ton problème vient du fait que tu fais appel à une fonction qui n'est pas définie...


[en réponse à pogonaworld]
D'abord, il faut lire les commentaires... ... Et quand je dis "les", je parle de TOUS les commentaires et même des premiers!!! Ceci est valable pour toi comme pour tous les autres!
Le commentaire de CLOAD (19/09/2005 10:17:21) auquel je donne une réponse plus que complète ne servirait-il donc à rien?

Afin d'éviter que ce genre de commentaire n'apparaisse encore, je viens de mettre à jour le code du fichier 'classMail.php'... Donc lisez le commentaire de mise à jour pour savoir ce que j'ai changé!

Désolé que ça tombe sur toi, pogonaworld, mais il faut me comprendre... Je ne vais pas le redire 36'000 fois.

Au fait, css c'est 'cascading style sheet'... ... Alors à moins qu'un petit génie me prouve le contraire, je crois ne pas me tromper en disant que ce n'est pas possible de faire de mon code un css... ... ETANT DONNE QUE LE CSS EST POUR LA MISE EN FORME DES DONNEES! C'EST UNE FEUILLE DE STYLE ET NON PAS DU CODE QUI EST EXECUTE!!!!



---

Je suis désolé pour le ton que ça prend.
J'espère que j'ai pu répondre à vos questions et donner une solution à vos problèmes... ... Bon code!

TriumpHS
pogonaworld Messages postés 4 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 26 février 2006
25 févr. 2006 à 13:46
et bien moi ca me met " Fatal error: Cannot redeclare send() in /www/sites/1/ifrance.com/s/i/sitesreptiles/site/classMail.php on line 268 "

et j'ai fait la manipulation du troisième commentaire et ca ne marche toujours pas

je ne sait pas le problème qu'il y a mais bon

si vous pouvez me donner un code source simple se serai plus facile à l'adresse suivante postelalexis@msn.com

PS : serait t-il possible de le faire au format .css
kbstudios Messages postés 1 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 24 février 2006
24 févr. 2006 à 01:10
FICHIER=C:\\Documents and Settings\\STEPHANE\\Mes documents\\ETUDE DE MARCHE V2.doc
TMP=
TYPE=
NAME=
REPERTOIRE=images/
DESTINATION=images/
TEXTE=

Fatal error: Call to unsupported or undefined function move_uploaded_file() in your script on line 58

J'ai ce message d'erreur quelqu'un peut-il m'aider ?
merci
informatique_04 Messages postés 70 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 17 mars 2010
31 janv. 2006 à 22:11
pour ton quistion poufouille la reponse il sur cette page lir bien avan de poser
la quistion
poufouille Messages postés 5 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 21 novembre 2007
29 déc. 2005 à 16:03
bonjour à tous,
moi j'ai ce message d'erreur :

Fatal error: Cannot redeclare send() in /var/www/free.fr/e/e/clemwebsite/classMail.php on line 268

cela correspond à la fonction send de la classmail...
je ne comprends pas trop ?
Merci de votre aide
huit13 Messages postés 6 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 26 octobre 2005
26 oct. 2005 à 19:55
Bonsoir Triumphs
J'ai lu les commentaires et le code, ce qui m'a permis de voir que ton répertoire upload s'appelait en faite PHPMail_TempUpload. J'ai bien positionné ce répertoire à la racine du site et il a bien un chmod de 777.
Mon php n'est pas débutant mais pas non plus initié. Je n'ose pas trop faire de modification dedans avant de savoir vraiment ce qui se passe car par contre mon anglais est très mauvais.
J'ai l'impression qu'il ne trouve pas le dossier temporaire et qu'il n'est pas autorisé à écrire dedans, n'est-ce pas ?

Je vais essayer d'indiquer un chemin absolu.
Je vous tiens au courant
a+
triumphs Messages postés 19 Date d'inscription dimanche 30 mai 2004 Statut Membre Dernière intervention 30 septembre 2013 3
26 oct. 2005 à 14:47
Bonjoour,

Je vois qu'il y a encore des problèmes avec ce script. Avant de continuer, je tiens à vous dire que je viens, une nouvelle fois, de le tester et, malheureusement pour vous, il fonctionne chez moi; ce qui implique que je ne vais pas le modifier dans les jours à venir.

Toutefois, en ce qui concerne le problème (que je n'ai pas!) avec les pièces jointes, il faut que je vous présente mes excuses. Je n'ai pas mentionné que, dans mon code, le répertoire 'upload' de LiTtleBuBu se nomme (pompeusement) 'PHPMail_TempUpload'.
En ce qui concerne le 'open_basedir restriction in effect', vérifiez que le répertoire temporaire ('PHPMail_TempUpload' dans mon cas) ne soit pas contenu dans un parent pour lequel vous n'avez pas changé les attributs. Un bon moyen d'éviter cela est de mettre le répertoire temporaire à la racine du site; dans ce cas, dans le code, les chemins relatifs au répertoire peuvent être modifiés par un chemin absolu. Ce qui est plus pratique...

En espérant que ceci a pu vous aider; bon code!

TriumpHS

PS: lire les commentaires c'est très bien, mais il faut aussi lire le code pour en comprendre les subtilités! Trois lignes de code remplacent facilement une page d'explications...
huit13 Messages postés 6 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 26 octobre 2005
26 oct. 2005 à 14:19
Bonjour Ghostleretour,
Est-ce que cela s'applique également au script de triumphs ?

a+
Myriam
ghostleretour Messages postés 20 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 12 août 2009
25 oct. 2005 à 23:59
Après vérification, j'utilise bien un répertoire nommé upload, et voici le commentaire du script de littlebubu :

Formail +


//Utilise une partie la classe Mail écrite par Léo West

Ce script met un formulaire sur son site qui permet aux visiteurs d'envoyer un email au webmaster
via un formulaire.
La nouveauté est que ce script permet au visiteur de mettre un fichier joint avec son message.
Le fichier joint est uploadé sur le serveur puis détruit une fois le mail envoyé.

INSTALLATION

Ce script ne fonctionne pas sous Online ou Nexen (et ne fonctionnera d'ailleurs jamais sur ces serveurs. J'ai
tout essayé et j'ai contacté le support technique, ils ont tellement bien modifié leur fonction email()
qu'il est impossible de l'utiliser avec ce script)

Créer un répertoire et uploader les deux fichiers dedans
Dans le fichier formail.php remplacer dans la ligne $dest="..." l'adresse email par la votre

Créer un répertoire "upload" au même niveau que le répertoire que vous avez créé (pas dedans, à côté :-) )

Et voila...

Stéphane
huit13 Messages postés 6 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 26 octobre 2005
25 oct. 2005 à 23:07
Non c'est bien cela :

// Attachement du fichier:_
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)){
// copie temporaire du fichier joint.
copy($NomFichier, "../PHPMail_TempUpload/$name");
}
$m->Attach( "../PHPMail_TempUpload/$name", "application/octet-stream" );
}

// Envoi du mail:_
$m->Send();

// Destruction de la copie temporaire de la pièce jointe:_
if ("$NomFichier"!="") {
Unlink("../PHPMail_TempUpload/$name");
huit13 Messages postés 6 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 26 octobre 2005
25 oct. 2005 à 22:55
Sur la version de littlebubu c'était upload mais sur celle de triumphs c'est celui la mais je n'en mettra pas ma main à couper. Je vérifie...
ghostleretour Messages postés 20 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 12 août 2009
25 oct. 2005 à 22:35
Euhhh, oui, je crois que j'ai une idée lol

Regarde dans le code convenablement, mais je pense que le nom du répertoire prévu est "upload" à moins que tu l'ais changé ?

Stéphane
huit13 Messages postés 6 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 26 octobre 2005
25 oct. 2005 à 22:32
Bonsoir Ghostleretour,
J'ai bien mis le chmod du répertoire PHPMail_tempUpload a 777
Mon fichier joint ne faisait que 27ko.
as-tu une autre idée ?
a l'avance merci
ghostleretour Messages postés 20 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 12 août 2009
25 oct. 2005 à 22:04
As tu bien modifié le CHMOD du dossier temporaire pour ta piece jointe ?

Stéphane
huit13 Messages postés 6 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 26 octobre 2005
25 oct. 2005 à 19:53
Bonjour,
J'ai testé les deux codes, celui de littlebubu et celui-ci. J'ai effectué les corrections comme décrits dans les commentaires, mais j'ai toujours le message d'erreur suivant :

+OK Hello there.

Warning: copy(): open_basedir restriction in effect. File(../PHPMail_TempUpload/code-projet-css.doc) is not within the allowed path(s): (/usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs:/tmp) in /usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs/PHPFormMail.php on line 102

Warning: copy(../PHPMail_TempUpload/code-projet-css.doc): failed to open stream: Operation not permitted in /usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs/PHPFormMail.php on line 102
Class Mail, method attach : file ../PHPMail_TempUpload/code-projet-css.doc can't be found

Je ne reçois pas mon message avec la pièce-jointe, par contre, je reçois bien l'email m'informant que : Votre e-mail, destiné à untel, a été envoyé!

Pouvez-vous m'aider
à l'avance merci
ghostleretour Messages postés 20 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 12 août 2009
4 oct. 2005 à 17:53
Vérifier tout ce qui a été dit sur l'autre post :

http://www.phpcs.com/code.aspx?ID=22574

Bonne lecture ;-)

Stéphane
lnicos Messages postés 67 Date d'inscription lundi 4 mars 2002 Statut Membre Dernière intervention 4 octobre 2005
4 oct. 2005 à 09:31
moi, j'ai également le même problème...
d'ou ça peut venir??
cbenisti Messages postés 2 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 30 septembre 2005
30 sept. 2005 à 15:21
en ce qui me concerne je ne reçoit rien sur mon mail juste ca : Message depuis votre site web:
pas de piece jointe ni meme la valeurs des champs renseignés
pouvez vous m'éclairer la dessus?
ghostleretour Messages postés 20 Date d'inscription dimanche 26 octobre 2003 Statut Membre Dernière intervention 12 août 2009
20 sept. 2005 à 19:00
merci pour ce code revu...

Il est utilisé sur un des sites que j'ai conçu http://www.carolobiker.com (partie contacts) depuis peu. Trouvé grace a LiTtleBuBu et modifié pour qu'il fonctionne correctement grace a vous tous.

Je l'ai moi meme modifié pour des pieces jointes allant jusqu'a 1 méga !

Merci

Stéphane
triumphs Messages postés 19 Date d'inscription dimanche 30 mai 2004 Statut Membre Dernière intervention 30 septembre 2013 3
19 sept. 2005 à 11:22
Pour répondre à CLOAD:

Les deux fonctions 'send' sont utilisées dans des contextes différents; tu peux donc modifier le nom d'une d'entr'elles sans que cela ne gène trop l'exécution.

Comme la fonction send déclarée à la ligne 29 n'est utilisée que de façon interne, je te conseille de modifier cette dernière. Tu peux lui donner le nom '_send' (avec l'underscore!) et, dans la fonction 'checkExp' (ligne 131), tu changes tous les appels à 'send(...)' par des appels à '_send(...)'.

De toute façon, une fois que tu liras le code de la fonction checkExp, tu verras que la fonction 'send($data)' n'est, en fait, plus utilisée; en ce sens que les appels n'apparaissent que dans des instructions commentées. La raison est donnée dans les commentaires!

De plus, je sais que certains serveur n'admettens pas certaines commandes; il devient donc difficile d'utiliser cette fonction si l'on veut que le code fonctionne correctement (indépendemment du serveur que l'on appelle)...

Voilà! Bon code!

PS: j'ai fiat les mêmes changements, suite à ton poste, et il n'y a pas de problème. Amuses-toi bien!
cload Messages postés 8 Date d'inscription jeudi 29 janvier 2004 Statut Membre Dernière intervention 19 février 2008
19 sept. 2005 à 10:17
Fatal error: Cannot redeclare Mail::Send() in /file/home/www/temp/classMail.php on line 268

Il est vrai que j'ai déjà "function send($data)" en ligne 29. Est-ce mon insensibilité à la casse ? (j'avoue, je ne sais pas me sensibiliser :) Comment faire svp ?
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
12 sept. 2005 à 22:41
Y'a un peu trop de "" à mon gout, surtout au niveau des variables.
On ne fait plus : echo "$reponse"; mais directement echo $reponse;

Bon, ce sont de petites choses... mais rien de trop grâve non plus.
Rejoignez-nous