|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||
|
Invité de passage
![]() Inscription : février 2007 Messages : 8 ![]() |
Bonjour a tous! j'ai mis du temps a me décider a venir sur un forum pour cette histoire de formulaire, mais bon, vu que je débute dans le php, ben j'ai du mal a m'en sortir seul... donc me voilà!
J'ai passé 2aprèmes entieres a chercher du code qui créerait un formulaire qui m'enverrait le contenu d'une zone texte, et une pièce jointe. Or, j'ai réussi a ce que l'envoi du mail se fasse, mais la pièce jointe bloque... D'un coté, j'ai le formulaire et son php qui envoie correctement le mail (avec message) et de l'autre coté, j'ai un autre formulaire et son php qui envoie un tas d'info mais surtout une pièce jointe, et ca marche. J'ai essayé d'integrer pas a pas la mise en forme de mon propre formulaire dans celui qui fonctionne avec la pièce jointe, mais rien a en tirer... J'ai fait des centaines de tests pour reperer d'ou venaient les erreurs, et je suis tombé sur des constatation désolantes... Exemple : quand je déclare un champ du formulaire en type="hidden", le mail ne s'envoie plus... Donc, vous restez mon seul espoir! Je précise que j'ai créer mon formulaire perso avec Dreamweaver 8. Je suis conscient qu'il y a surement du code inutile dans tout mon charabia mais j'ai préféré ne pas enlever des trucs qui pourraient être vital... Voici le formulaire de mon mail qui marche answer.php : (Désolé de mettre la déclaration de chaque calque, mais je préfère ne rien laisser au hasard...) Code html :
Et son morceau de PHP mail.php Code :
Code html :
Ainsi que son morceau de PHP formmail.php : Code :
J'ai utilisé mon formulaire perso answer.php posté plus haut et voici le morceau de php correspondant : Code :
|
||||||||||
|
|
00
|
|
|
#2 | ||||||
|
Expert Confirmé
![]() |
Salut et bienvenue dans les forums de Developpez.com !
Je veux bien t'aider, mais je ne travaille pas ainsi (avec DreamWeaver). Je vais au plus simple. Voici le code de ton formulaire que tu pourras ensuite embellir si tu veux. Je procède par étape pour que tu ne sois pas trop perdu. Tu remarqueras surtout les 2 parties de mon code : - En haut, le code PHP du traitement du formulaire - En bas, le code HTML du formulaire Code :
Dans la partie traitement en PHP, tu va commencer par ajouter l'upload du fichier (pièce jointe). Le code le plus simple que je connais est celui-ci : Code :
Une fois que le fichier est téléchargé, tu envoi le mail avec PHPMAILER. • Télécharge cette classe -> ICI • Ajoute-la dans ton script avec Require_once('class.phpmailer.php'); en faisant attention d'installer ce fichier à la racine de ton programme... Au final, cela te donne donc : Code :
Si tu veux ajouter des trucs et que tu bloques, demande moi, à+ [EDIT] J'ai retrouvé ce sujet où j'explique en détails le formulaire d'upload... |
||||||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : février 2007 Messages : 8 ![]() |
Je tiens tout d'abord à te remercier de bien vouloir me venir en aide!!!
J'ai donc essayer le code que tu m'a proposé, en enlevant les 3 fonctions smtp car la fonction mail() fonctionne sur mon serveur. J'ai fait quelques modifications pour renseigner les adresses, et il y a 2 issues, et 2 problemes. Soit je veux envoyer le formulaire sans uploader de fichier, et un message d'erreur me dit "Erreur : Pièce jointe non téléchargée!" Ce qui est plutot embetant, car l'envoi de pièce jointe devrait etre facultatif... Le 2eme probleme est lors de l'envoi du formulaire avec pièce jointe, un message d'erreur me dit : "Could not instantiate mail function." (Pour info, je me suis renseigné pour savoir ce que signifiait "instantiate", aucun traducteur en ligne n'a pu me le dire, et donc j'ai cherché ce terme dans le code du fichier class.phpmailer.php et je l'ai trouvé écrit une fois, mais ca ne m'avance pas vraiment... peut etre que toi si!?) Je te montre mon code fignolé, pour que tu puisses décelé le probleme! Code :
A un moment, un essai a marché, le mail m'a inscrit qu'il s'était bien envoyé, et d'ailleurs c'est l'expediteur fixe de mon mail qui l'a recu, mais il m'a dit que le mail était illisible, et il n'y avait pas de pièce jointe... que faire?? Merci par avance! |
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() |
Oui, à ce niveau ce n'est plus trop de l'aide, mais limite de la sous-traitance...
As-tu lu ces 2 tutoriels ? http://antoine-herault.developpez.co...ls/php/upload/ http://stephaneey.developpez.com/tut...php/phpmailer/ Je n'aurais pas le temps avant ce soir d'essayer mon code pour trouver les bugs et les failles de sécurité. |
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() Inscription : février 2007 Messages : 8 ![]() |
Citation:
Ton code était bon en fait, mais il fallait trifouiller quelques trucs qui n'était pas préciser dans le tuto de phpmailer, mais j'y suis arrivé, grace a toi, et je te remercie beaucoup beaucoup!!! J'avais posté mon probleme sur 3 forums differents et celui ci a fait la différence! Encore merci de ton aide, et voici le code pour ceux que ca interesserait! Code :
|
|||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() |
Tu peux maintenant ajouter des tests pour vérifier les données postées avant l'envoi du mail...
- Vérifier la syntaxe de l'adresse mail - Vérifier que le sujet du mail est bien défini - Vérifier que le texte du mail est bien défini - Vérifier le type du fichier ajouté etc... Par exemple : Code :
if (!isset($_POST['message'])) die('Vous devez saisir un message!'); Ensuite, tu peux améliorer ce code en permettant l'ajoût de plusieurs pièces jointes si tu veux. N'oublis pas le tag
|
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé
![]() |
Voici le code corrigé :
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com