cs_Skwal
Messages postés17Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 3 juin 2004
-
6 mai 2004 à 20:49
MeDoan
Messages postés2Date d'inscriptionmercredi 25 mai 2011StatutMembreDernière intervention26 mai 2011
-
26 mai 2011 à 09:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
MeDoan
Messages postés2Date d'inscriptionmercredi 25 mai 2011StatutMembreDernière intervention26 mai 2011 26 mai 2011 à 09:34
Salut CFNDIAVE,
Merci pour ta réponse aussi rapide! Je n'avais pas vu ce post "corrigé" du formulaire..
mais j'ai toujours le même problème :/
Je reçois correctement le mail, mais la vérification de la syntaxe de l’expéditeur ne fonctionne pas.
Je m'explique, une fois devant le formulaire, je peu taper n'importe quoi, meme laisser le champs expéditeur vide, je peux envoyer mon mail sans problème, et dans ma boite mail, j'ai bien ce que j'ai tapé dans le champ.. (ou rien si je l'ai laissé vide)..
Le problème est une je réalise un site pour une petite PME, et ce formulaire va servir a envoyer des candidatures pour travailler... J'aimerais donc que le mail soit vérifié pour assurer une réponse..
Je test le script sur un FTP gratuit free. Ça peu venir d'eux?
Je ne pense pas car j'avais trouvé un autre script avant celui la, et la vérification mail marchait (mais pas al pièce jointe ^^')
J'ai essayer de "mixer" les 2 codes mais étant débutant en PHP, je n'y suis pas parvenu..
Merci
cfndiaye
Messages postés18Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention26 mai 2011 26 mai 2011 à 08:30
MeDoan
Messages postés2Date d'inscriptionmercredi 25 mai 2011StatutMembreDernière intervention26 mai 2011 25 mai 2011 à 16:20
Bonjour!
Tout d'abord, merci pour ce partage qui fonctionne pas trop mal!
Pourquoi "pas trop mal"? ^^
Eh bien j'ai un souci avec la verification du mail... je peu mettre n'importe quoi, meme laisser le champs vide, je n'ai pas de message d'erreur, le mail part quand meme :/
et je ne comprend pas pourquoi :/
merci
yaniks9
Messages postés1Date d'inscriptionjeudi 4 novembre 2010StatutMembreDernière intervention 4 novembre 2010 4 nov. 2010 à 15:41
Bonjour,
Après avoir suivi la procédure d'installation des scripts, le message d'erreur suivant est affiché:
Objet non trouvé!
L'URL requise n'a pu etre trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d'informer l'auteur de cette page de cette erreur.
Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.
rachoup
Messages postés7Date d'inscriptionjeudi 28 janvier 2010StatutMembreDernière intervention 2 juillet 2010 3 avril 2010 à 02:13
le code de little-bubu a quelques limites quand on veut adapter form ou changer nom fichier form.html du coup j'ai du me pencher sur la précision de triumph et ça marche donc:
//rectification c'est vrai que le script de triumph est beaucoup mieux mais pour ceux avec //qui l'un ou l'autre cas voient apparaître un msg d'erreur remplacer les lignes:
hébergement ovh sous windows sinon il y'a toujours erreur du genre unexpected &....on line ...
//n'oubliez pas la ligne:cf->commentaire triumph du 18 mai 2005 et Augmentez le maxFileSize
if ("$NomFichier"!="") {
Unlink("../upload/$name");
}
Bonne chance. "l'union fait la force" les deux codes m'ont pour ainsi dire aidée.
rachoup
Messages postés7Date d'inscriptionjeudi 28 janvier 2010StatutMembreDernière intervention 2 juillet 2010 2 avril 2010 à 16:43
bonjour little _bubu je tiens à te dire merci qui marche impeccablement bien....!!!!!! ça fait des semaines que je tourne de forums en forums pour tester un bon script mais là je suis super contente. j'ai bien suivi tes recommandations via le fichier lisez moi.
Merciiiiiiiiiiiiiiii pr les débutants comme moi .....et chapeau!
sebarca
Messages postés22Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention 8 mars 2010 27 janv. 2010 à 18:13
Bonjour, étant un vrai nul en PHP j'ai pris ce code et il marche à merveille, j'en remercie l'auteur, cependant une petite question me vient, j'aimerais que le message envoyé a l'envoi du formulaire, ne s'affiche pas sur la meme page mais plutôt dans une autre page. J'espere me faire comprendre...
D'avance merci...
cfndiaye
Messages postés18Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention26 mai 2011 25 sept. 2009 à 00:29
salut tout le monde
comme vous j'ai eu des problémes en testant ce code
j'ai effectué quelque touche maintenant ça marche nikel
si vous le voulez envoyer moi un mail a xoolicreative@gmail.com
ma11
Messages postés12Date d'inscriptiondimanche 26 novembre 2006StatutMembreDernière intervention13 novembre 2009 17 sept. 2009 à 10:09
Merci. Seul inconvénient, l'envoi de piece jointe ne fonctionne pas voici ce que je recois :
Warning: copy(../upload/htm.JPG) [function.copy]: failed to open stream: Permission denied in /home/ma111com/public_html/form/formmail.php on line 388
Class Mail, method attach : file ../upload/htm.JPG can't be found
veri10
Messages postés4Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention 5 octobre 2009 20 juil. 2009 à 17:22
Bonjour,
Mêmes problèmes que beaucoup de monde ici :
-Pas de pièce jointe malgré le 777.
-Rien dans "de" du mail (censé recevoir le mail de l'expéditeur)
-Rien dans "objet" du mail (censé recevoir le sujet saisi par l'expéditeur)
-Le corps du mail ne reçoit que le texte écrit en dur dans le script, ne reçoit pas ce qu'a écrit l'expéditeur dans "message"
-Priorité : n'apparaît nul part.
Bref, marche pas !
cs_kina17
Messages postés9Date d'inscriptionmercredi 27 juin 2007StatutMembreDernière intervention 9 avril 2012 15 juin 2009 à 23:59
Bonjour à tous,
Message idem Macduf 21/02/09
J'ai suivi les indications pour me servir de ce code.
- J'ai à la racine de mon site un répertoire FR avec dedans les fichiers form.html et formmail.php
- j'ai créer à la racine du site un répertoire upload qui est bien en chmod 777
et rien à faire. Lors des essais, je reçois bien le mail, mais pas de pièce jointe.
- je travaille sous Dreamweaver
- le site est hébergé chez Amen
- j'ouvre le courrier avec Microsoft entourage sous Mac ou directement via le webmail du site.
HELP HELP avant que je m'arrache tous les cheveux. Merci
macduf
Messages postés2Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention21 février 2009 21 févr. 2009 à 21:55
Bonjour, j'ai suivis les instruction, lorsque j'envoie un fichier joint, mon dossier upload reste vide, par contre je reçoit bien l'email.
Mon dossier upload à les permissions nécessaires (777).
D'où viens le problème?
J'ai essayé d'envoyer des images, dossier zip, mais toujours rien...
Kicherch
Messages postés2Date d'inscriptionsamedi 31 mars 2007StatutMembreDernière intervention22 janvier 2009 22 janv. 2009 à 14:42
Je vous remercie de l'interet que vous portez à ma question.
- Mon hébergeur est OVH, mon fournisseur d'acces est Orange.
- Ma messagerie passe par orange en courrier sortant.
En rappel de mon problème : Le script effectue correctement le transfert de la pièce jointe dans mon répertoire "upload", et effectue aussi la suppression du fichier(cde unlink)après envoi du mail.
La question qui se pose(pour moi) reste le transfert de la pièce jointe qui ne se fait plus avec le texte du mail.
Mes dernières tentatives de modification du fichier FORMAIL.PHP en restent sur les lignes ci-dessous :
} // class Mail
$subject=StripSlashes($subject);
$msg=StripSlashes($msg);
$msg="Message depuis votre site web: $msg";
$m= new Mail; // create the mail
$m->From( "$email" );
$m->To( "$dest");
$m->Subject( "$subject" );
$m->Body( $msg); // set the body
if ($email1!="") {
$m->Cc( "$email1");
}
$m->Priority($priority) ;
if ("$NomFichier"!="") {
Lodurr
Messages postés4Date d'inscriptiondimanche 14 octobre 2007StatutMembreDernière intervention22 janvier 2009 22 janv. 2009 à 09:34
bonjour Kicherch
peut tu nous dire quel est ton hébergeur ?
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 22 janv. 2009 à 00:16
Salut Kicherch,
S'il apparait un changement dans le comportement du script et que tu n'as visiblement pas fait de modification, c'est que cela vient probablement de ton hébergeur.
Dans un premier temps, tu devrais vérifier s'il n'y a pas une mise à jour de la version de PHP (voir même un changement dans la politique de sécurité de certaines fonctions du PHP telle que 'mail') ou de la gestion de fichiers qui aurait été faite par l'hébergeur.
Personnellement, je pencherais pour la première solution et plus précisément pour un changement de politique de sécurité de la fonction mail. Il faut tout de même se rappeler que l'utilisation automatiques (et peu contrôlée) de ce type de fonction s'apparente à une faille de sécurité pour les hébergeurs... ...
Bonne chance, bon code!
Kicherch
Messages postés2Date d'inscriptionsamedi 31 mars 2007StatutMembreDernière intervention22 janvier 2009 21 janv. 2009 à 22:39
Bonjour, Voilà plusieurs mois que j'utilisais ce script sans problèmes. Depuis qq jours le système envoie toujours la Piece jointe dans le répertoire upload mais la PJ ne suit plus le mail. Quelqu'un a t il une solution?
Merci d'avance.
cs_amilo
Messages postés2Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention18 mai 2008 18 mai 2008 à 17:28
Ai-je dis le contraire ?! Au contraire...
1, 5 ou X pièces jointes sans problème.
0.5, 1 ou 5 Mo sans problème (sauf vitesse, bien sur).
Avec ou sans commentaire.
Merci à l'auteur.
Lodurr
Messages postés4Date d'inscriptiondimanche 14 octobre 2007StatutMembreDernière intervention22 janvier 2009 18 mai 2008 à 16:11
bonsoir
Pas la peine de faire une fixation avec <FREE
tout le bazar fonctionne correctement avec, pièce jointe comprise, quand on prend la peine de bien appliquer la procédure à la virgule prêt
ce script est tout simplement génial et rempli à la perfection son rôle
bon courage
cs_amilo
Messages postés2Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention18 mai 2008 18 mai 2008 à 15:29
Bonjour,
Pour répondre à AZERIX, je suis moi-même chez FREE (tout le monde put se tromper :-)...) mais je n'ai pas de problème avec les pièces jointes.
Voir test : http://chroniq.free.fr/mail/form.html Il est vrai que je ne suis pas habitué au PHP, c'est dire que je n'ai rien chamboulé dans la source originelle.
Bonne journée.
thekidfry
Messages postés2Date d'inscriptionsamedi 12 avril 2008StatutMembreDernière intervention12 avril 2008 12 avril 2008 à 14:24
mpi ça me mais
Message depuis votre site web:
et la rien alors que j'ai tester et envoyer un message !
Pour tous ceux qui sont chez Free, sachez que donner tous les droits sur un dossier (le chmod 777) n'est pas autorisé par le serveur. D'où les problèmes avec la pièce jointe.
Pour ma part, j'ai réussi à contourner le problème en créant le dossier upload sur mon bureau (donc avec tous les droits) puis en l'uploadant sur mon ftp. Quand on regarde les attributs de ce dossier fraichement uploadé, on voit qu'il a a présent tous les droits (777).
En espérant que ça résoudra des problèmes ...
alainleo
Messages postés5Date d'inscriptionlundi 19 novembre 2007StatutMembreDernière intervention23 novembre 2007 23 nov. 2007 à 22:37
Merci de vos conseils.
Oui, mon hébergeur (le Neuf) semble accepter le php puisque j'arrive avec un expéditeur simple de formulaire (voir le script ci-dessous) à recevoir des mails sans problème.
Seulement, je voudrais y ajouter ce qu'il faut pour recevoir deux pièces jointes, en relation avec deux champs de type file de mon formulaire html... et ça, je n'y arrive pas.
Les pièces jointes ne sont jamais jointes... (c'est pourquoi je me suis intéressé au formulaire de littlebubu, mais, chez moi en tout cas, il fonctionne encore moins bien que mon script rudimentaire puisque je ne reçois cette fois ni la pièce jointe, ni le texte).
Si vous savez comment ajouter ce qu'il faut à mon script, je suis preneur.
if (@mail($monadresse, $objet, $message, $poster)) {
echo "Merci de votre visite sur le site !\n";
echo "Votre message a bien été transmis !
\n";
} else {
echo "Désolé, votre message n'a pu être transmis.\n";
}
} else {
echo "
Merci de bien vouloir
Renseigner tous les champs signalés par un astérisque (*).
et vous assurer d'avoir fourni une adresse E-mail valide.
\n";
}
echo "Accueil";
?>
cs_defrancesco
Messages postés16Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention20 juin 2005 23 nov. 2007 à 19:06
Il faut savoir que certains hébergeurs (les plus actifs dans la mise à jour), par mesure de sécurité, appliquent un patch sur PHP qui bloque les tentatives d'injections de headers via la fonction mail() sur tous les formulaires PHP en ligne.
En effet, de nombreux sites contiennent des formulaires qui ne respectent pas les standards et normes d'échange/protocole mail et qui ne vérifient pas comme il faut les paramètres qu'ils envoient en "additional parameters" à la fonction mail, ce qui permet d'injecter des headers et donc d'envoyer du spam massivement depuis les serveurs.
Personnellement, je pense que ce script est dépassé.
Je te conseille d'aller en télécharger un plus récent.
cs_simon59150
Messages postés4Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention22 mars 2009 23 nov. 2007 à 18:41
ton hébergeur accepte t-il le php
alainleo
Messages postés5Date d'inscriptionlundi 19 novembre 2007StatutMembreDernière intervention23 novembre 2007 23 nov. 2007 à 18:39
Encore moi !
Le chmod est modifié mais mes mails arrivent toujours vides.
Pas d'indication de l'expéditeur, ni du sujet (alors que je les ai bien entrés dans le formulaire) et pas de pièce jointe ni de texte dans le message.
Comment faire ?
alainleo
Messages postés5Date d'inscriptionlundi 19 novembre 2007StatutMembreDernière intervention23 novembre 2007 23 nov. 2007 à 17:52
Merci Defrancesco,
je viens de modifier le chmod de mon répertoire upload mais j'ai eu du mal à comprendre comment me connecter à localhost avec filezilla pour faire cette opération.
Alors j'ai bien mis le chmod à 777 mais l'envoi du formulaire ne fonctionne toujours pas. Pour l'instant, j'ai le message d'erreur : "Class Mail, method Mail : Adresse invalide".
Faut dire que j'ai pas mal bidouillé le code et je ne sais plus où j'en suis. Je vais effacer tout cela et recommencer. :)
cs_defrancesco
Messages postés16Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention20 juin 2005 23 nov. 2007 à 12:59
Le CHMOD n'a rien à voir avec le navigateur!
C'est le droit d'accès chez le provider que l'on peut modofier avec FTP.
Quand ont transfert des dossiers et des fichiers sur le serveur via FTP on peut modifier les droits d'accès.
En général, il suffit d'aller sur le dossier (ou le fichier) désiré avec le pointeur de la souris et de faire un clique droit. Apparaît un menu avec la fonction CHMOD.
Il suffit alors de modifier le droit d'accès.
alainleo
Messages postés5Date d'inscriptionlundi 19 novembre 2007StatutMembreDernière intervention23 novembre 2007 23 nov. 2007 à 10:45
Merci pour ton aide Defrancesco.
J'ai visité le site du Zéro et le cours est effectivement très clair et intéressant.
Je pense donc que mon problème ne vient pas du chmod puisque mon serveur n'est pas sous linux, mais sous windows.
Simplement, les mails que je reçois avec le script du formulaire Littlebubu sont vides de tout texte comme de tout fichier joint. En quelque sorte, je reçois des enveloppes vides.
Bon, je vais quand même relire plus attentivement le cours sur le chmod... on ne sait jamais.
cs_defrancesco
Messages postés16Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention20 juin 2005 23 nov. 2007 à 07:04
Tu ne trouveras rien sur le CHMOD dans ton bouquin sur PHP.
alainleo
Messages postés5Date d'inscriptionlundi 19 novembre 2007StatutMembreDernière intervention23 novembre 2007 22 nov. 2007 à 13:49
Bonjour à tous,
Ce code est exactement ce qu'il me faut mais je n'arrive pas à le faire fonctionner chez moi.
Ma config : Windows XP, serveur Apache en local, navigateur firefox et thunderbird pour le courrier.
Mon problème avec le code est que je reçois un mail, avec le trombone m'indiquant qu'il y a un fichier attaché, mais ce mail est totalement vide (ni texte, ni fichier joint).
Je ne comprends rien au "chmod 777" qu'il faudrait peut-être faire sur le répertoire "upload", répertoire qui fonctionne d'ailleurs bien en principe car j'arrive à y uploader sans problème des fichiers avec un autre script.
Je viens de m'offrir un gros bouquin sur le PHP5 mais je n'en suis encore qu'à la préface ... :), et avant que je comprenne...
Si quelqu'un peut m'aider, merci d'avance.
Lodurr
Messages postés4Date d'inscriptiondimanche 14 octobre 2007StatutMembreDernière intervention22 janvier 2009 19 nov. 2007 à 17:05
résolut
simplement oublié le dossier upload
cs_simon59150
Messages postés4Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention22 mars 2009 19 nov. 2007 à 13:51
super code
il fonction bien
Lodurr
Messages postés4Date d'inscriptiondimanche 14 octobre 2007StatutMembreDernière intervention22 janvier 2009 17 oct. 2007 à 12:22
Bonjour
pas de problèmes avec le texte mais beaucoup avec piece jointe (Photo) hébergeur Free
j'ai ceci : Warning: copy(../upload/classic.jpg) [function.copy]: failed to open stream: No such file or directory in /mnt/152/sdc/0/6/glangl1/Courrier/formmail.php on line 387
Class Mail, method attach : file ../upload/classic.jpg can't be found
merci pour votre aide
cordialement
Gérard
http://glangl1.free.fr
doc421
Messages postés3Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention31 octobre 2008 19 sept. 2007 à 01:56
Chers amis, bravo et merci!
Mais comment rajouter des champs tels: nom, tel...
Merci
super_yann
Messages postés1Date d'inscriptionmardi 31 janvier 2006StatutMembreDernière intervention15 juillet 2007 15 juil. 2007 à 20:26
Roberto2309 ( ta surement bloqué l'acces au PJ .. Outlook fait ca par défaut.. mais tu peux le setter dans hotmail)
---------
Je voulais dire merci a : LiTtLeBuBu et triumphs
Moi toute a marché tout de suite.. Aucune erreur. J'ai ajouté 4 champs supplémentaire (nom, prénom, #tel, age) et j'ai 2 pieces jointes..Tout marche parfaitement :)
Donc merci :)
--------
Je vais mettre les fichiers toute modifier sur mon site perso. Moi, le formulaire sert pour que les gens envoie leur candidature pour un emploi.
-Donc, vous aurez a modifier la page Merci.php
-Les paramètre du script dans : PHPFormmail.php (nom, email, etc.)
-L'action du post dans : phpform.php et le texte que j'ai ajouté plus haut pour mon usage perso :)
- Et faire ce que l'installation demande.. faire le dossier "upload" a coté du dossier qui contient (merci.php, PHPFormmail.php et phpform.php) et lui faire un CHMOD 777.
(si votre dossier ne s'appel pas "upload", ca marchera pas.. sauf si vous changer le nom dans du lien dans PHPFormmail.php.)
roberto2309
Messages postés1Date d'inscriptiondimanche 11 mars 2007StatutMembreDernière intervention20 mars 2007 20 mars 2007 à 18:28
Salut les gars, Merci pour ce beau code.
Je suis désolé de faire chier, mais j'ai un soucis, je recois bien le mail, il semble contenir mes pj (le poids du message correspond) mais je n'arrive pas a ouvrir mes pj, elles n'apparaissent pas...
Aidez moi, sinon je vais faire du mal a quelqu'un de mon entourage, il faut bien que quelqu'un paie...
cs_antonio66
Messages postés2Date d'inscriptiondimanche 5 novembre 2000StatutMembreDernière intervention22 février 2007 22 févr. 2007 à 22:17
Bonjour,
Deja merci pour ce script qui est exactement ce qu'il me faut et qui fonctionne impecable. Malheureusement je souhaite integrer un deuxieme champs pour envoyer 2 pieces jointes. J'ai essayé le code indiqué plus haut, mais ça ne fonctionne pas.
Qulesqu'un pourrait m'aider ?
Merci par avance.
kisa03
Messages postés1Date d'inscriptionmercredi 21 février 2007StatutMembreDernière intervention21 février 2007 21 févr. 2007 à 08:44
bonjour A tous !
Bon j ai juste un petit probleme , le code du tuto a l air de fonctionner , mais quand je clique sur le bouton envoie cela m ouvre la page "Merci pour votre message" que jai bien entendu cree , mais je ne recois aucun mail , ni piece jointe ......j ai fais plusieur essaie sur different boite , rien .... probleme de code ou hebergeur ??
ensuite a la place de mon message
$reponse=StripSlashes("merci pour votre message")
je voudrais inseret un lien de retour sur mon index.html comment puis-je faire
Merci d avance pour votre aide
KISA
DadouM59
Messages postés2Date d'inscriptionsamedi 3 février 2007StatutMembreDernière intervention28 novembre 2010 4 févr. 2007 à 16:25
j'ai un peu probleme je suis novice en matiere de creation de site internet, pour les besoin de mon association j'essai de creer un formulaire avec plusieur entrée Nom, Prenom, Adresse ...etc mais je n'arrive pas à configurer le fichieer PHP voila ce que j'ai ecrit en reprenant les in dices ci dessus:
} // class Mail
$subject=StripSlashes($subject);
$msg=StripSlashes($msg);
$msg="Message depuis votre site web:
$msg
Nom: $nom";
$m= new Mail; // create the mail
mais le mail arrive avec un corp vide Message de votre site web. rien en dessous quelqu'un a t il une explication
Merci
cs_ricob
Messages postés13Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention 3 novembre 2006 3 nov. 2006 à 01:31
j'ai planché sur le probleme et grace aux commentaires de vous tous ca marche .
J'ai juste un soucis le nom de l'emetteur qui s'affiche dans ma messagerie est celui de mon compte free.(si quelqu'un a une solution ...)
Merci a tous
PS il serait utile de rajouter une fonction de verification des champs et enventuelement l'envoi de l'adresse IP de l'internaute.
cs_ricob
Messages postés13Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention 3 novembre 2006 2 nov. 2006 à 10:37
Bonjour tout le monde ce script fonctionne tres bien mais malgré avoir lu vos commentaires je n'arrive pas a modifier le code pour avoir 4 pièces jointes . Quelqu'un pourrait il m'aider svp ? Je patauge et je suis ultra debutant .
Merci a l'auteur et a ceux qui m'ont permis de le faire fonctionner
pepito007
Messages postés2Date d'inscriptionjeudi 14 septembre 2006StatutMembreDernière intervention27 septembre 2006 27 sept. 2006 à 12:11
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
tetsuoooo
Messages postés1Date d'inscriptionmercredi 6 septembre 2006StatutMembreDernière intervention 8 septembre 2006 8 sept. 2006 à 20:28
Voila je suis chez free
lorsque je remplis le formulaire sans piece jointe ca fonctionna avec une image ca donne
*****************************************************
Warning: copy() [function.copy]: open_basedir restriction in effect. File(../upload/DSCN0611.jpg) is not within the allowed path(s): (/mnt/128/free.fr/d/e/blueflugi) in /mnt/128/free.fr/d/e/blueflugi/formmail.php on line 387
Warning: copy(../upload/DSCN0611.jpg) [function.copy]: failed to open stream: Operation not permitted in /mnt/128/free.fr/d/e/blueflugi/formmail.php on line 387
Warning: file_exists() [function.file-exists]: Unable to access ../upload/DSCN0611.jpg in /mnt/128/free.fr/d/e/blueflugi/formmail.php on line 345
Class Mail, method attach : file ../upload/DSCN0611.jpg can't be found
******************************************
J'ai filezila et malgré que je change l'attribut en 777, lorsque je regarde les attributs ils restent en 700
merci de votre aide
sami038
Messages postés10Date d'inscriptiondimanche 5 février 2006StatutMembreDernière intervention27 juin 2007 25 juil. 2006 à 17:51
Super avec free , sa marche , seuile problème pas de pièce jointe !
wildover
Messages postés4Date d'inscriptionvendredi 12 mai 2006StatutMembreDernière intervention12 mai 2006 15 mai 2006 à 17:56
voila le message que j'ai
Not Found
The requested URL /01/formMail.htm was not found on this server.
Apache/1.3.34 Server at wildover.com Port 80
wildover
Messages postés4Date d'inscriptionvendredi 12 mai 2006StatutMembreDernière intervention12 mai 2006 15 mai 2006 à 16:19
Salut ! j'ai la flemme de lire tout ça alors est ce que quelqu'un pourrait m'expliquer un peu. je suis chez ovh et je n'arrive pas à faire marcher ce script. j'ai fait toutes les manips et quand je clique sur envoyer j'obtiens un message erreur 404 formmail.php introuvable pourtant le fichier est bien à l'emplacement indiqué et les dossiers sont sur 777. je ne compends pas.
bebesuelenet
Messages postés2Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention 3 avril 2006 3 avril 2006 à 21:58
allu,
comment peut on faire pour ajouter une réponse à l'expediteur du formulaire c'est a dire à $email ?
merci a tous en tout cas le script marche super bien avec upload à 2Mo :
bebesurlenet
reza999
Messages postés3Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention31 mars 2006 30 mars 2006 à 16:08
Bonjour, je pige pas le coup du repertoire upload.. pouvez vous apporter des percisions la dessus.. c'est quoi un repertoire, un dossier? vide? sinon ya quoi dedans? je capet un beignet mais ça va venir!!
merci d'aider le padawan du php que je suis ou d'orienter vers un tuto debtant bien fait , pour formulaire avec piece jointe,
thx ++
seb
dual design
Messages postés1Date d'inscriptionlundi 30 janvier 2006StatutMembreDernière intervention30 janvier 2006 30 janv. 2006 à 15:05
Bonjour,
J'ai suivi scrupuleusement vos conseils d'installation et je n'arrive pas à comprendre ce qui se passe, j'obtiens l'erreur suivante :
Fatal error: Cannot redeclare send() in /home/ju41718/mail/classMail.php on line 268
Pour information, j'ai créé un répertoire "mail" dans lequel j'ai stocké les deux fichiers PHP. Le répertoire est en CHMOD777.
La page sur laquelle se trouve mon formulaire a la balise <FORM> suivante :
Je ne sais pas ce qui peut empêcher le bon déroulement de l'opération, merci de m'aiguiller :)
cs_aminix9
Messages postés96Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 9 février 2010 23 déc. 2005 à 11:40
salu les programmeurs,
est c que quelqu un peu m aider à utiliser ce code sous windows xp avec wamp5!!
je veu le tester en local, j ai crée un répertoire au sein du repertoire de mon site(qui est en localhost) et j ai aussi crée le dossier upload, mé quand je clik envoyer le navigateur m affiche le code du fichier formmail.php!!
je sé pa si j ai fé une grande betise!!
merci.
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 3 oct. 2005 à 21:51
Tu dois te connecter sur ton propre PC grace a l'adresse ip 127.0.0.0 (login Localhost et mdp pareil que ta base de donnée) avec un logiciel comme FTPExpert ! Je suis pas sur que ca fonctionne mais ca vaut la peine de tester ;-)
Stéphane
lnicos
Messages postés67Date d'inscriptionlundi 4 mars 2002StatutMembreDernière intervention 4 octobre 2005 3 oct. 2005 à 19:22
je dois mettre quoi...
pour mon dossier, je suis sous windows avec easyphp, donc je ne peux rien modifier, c'est gênant ???
comment faire ?
merci encore
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 3 oct. 2005 à 18:25
Est ce que ton dossier est bien en CHMOD 777 ?
As tu bien modifié la taille du hidden maxfilesize dans le fichier HTML ?
Stéphane
lnicos
Messages postés67Date d'inscriptionlundi 4 mars 2002StatutMembreDernière intervention 4 octobre 2005 3 oct. 2005 à 18:07
bonjour,
ce code fonctionne très bien chez moi. Hormis le fait qu'aucune pièce jointe n'est réellement envoyé, je n'arrive pas à la lire à partir de mon webmail courant, alors qu'il affiche bien une pièce jointe...
Est-ce quelqu'un a une idée ??
Merci
cs_defrancesco
Messages postés16Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention20 juin 2005 20 sept. 2005 à 10:52
fanman
Messages postés3Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention20 septembre 2005 20 sept. 2005 à 09:51
Salut,
J'ai encore un petite question.
Quelqu'un aurait-il réussi à faire fonctionner ce script sur FREE. Car malheureusement j'peux pas changé le chmod sous free.
Paralèlement à ça j'ai un forum phpbb avec un mod attache-mod ou j'upload des fichier dans un répertoire et ça marche, malgré le chmod. Y aurait'il une solution pour faire fonctionner ce script sous free, ou c'est moi qui ai m**dé... ?
Sinon ce script trop génial, encore bravo.
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 12 sept. 2005 à 20:44
Voilà! Comme je l'avais annoncé le 17.06, je me suis penché sur c'te formulaire et j'ai essayé de corriger ce qui devait l'être et d'ajouter des fonctionnalités intéressantes.
-- Désolé LiTtleBuBu, je fais un peu de la pub pour moi... --
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 8 sept. 2005 à 23:31
J'ai pas pensé a ca car je croyais que le probleme venait du PHP...
Mais bon, je connaissait l'existance de cette balise et j'ai donc vérifié.
A parement donc, comme le fichier est trop gros par rapport a ce que le formulaire accepte, il n'est pas uploader sur le serveur et donc le PHP nous dit que le fichier n'existe pas (logique, il n'a pas été chargé car le formulaire le rejetait) !
L'énigme est résolue, tout me monde peut donc l'utiliser maintenant lolll
Stéphane
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 8 sept. 2005 à 21:29
Pour répondre à ghostleretour:
Merci d'avoir cherché. Comme tu le dis, cela est trop con... ... Mais je crois que c'est bien la bonne méthode pour augmenter la taille limite du fichier uploadé. (Il me semble avoir lu cela quelque part, mais je ne me rappelle plus où; désolé!)
[quote from php manual
mian> >feature>>handling file uploads]
The MAX_FILE_SIZE hidden field must precede the file input field and
its value is the maximum filesize accepted. The value is in bytes.
[warnning]
warning: The MAX_FILE_SIZE is advisory to the browser. It is easy to
circumvent this maximum. So don't count on it that the browser obeys
you wish! The PHP-settings for maximum-size, however, cannot be fooled.
/warnning /quote it doesn't tell how php check the size
1 year ago I 1st time read it, and re-read it today, finally get what
it means
document should tell more to programmers:
----------
1. user's file size is checked at the beginning of transfer before
upload is done
2. hard limit: file size is check against "PHP-settings for
maximum-size", file which larger will be refused
3. then, soft limit: check against "MAX_FILE_SIZE" if there is one
hidden value before input file field
4. when transfer done, php-script is active, manage to store the
uploaded-file, however, value of MAX_FILE_SIZE easy to circumvent, and
cannot be trust on, your php-script should re-check the uploaded file
size as u wish.
FAQ: u said MAX_FILE_SIZE is untrustable, why we should make use of it?
why not use only php-script to check filesize?
answer: in current php, handling of upload file, scirpt is not active,
thus, cannot check filesize until transfer of upload file is done.
MAX_FILE_SIZE get ability to soft limit the filesize before user have
to wait too long.
----------
this is what i comprehend :)
yes, it's too long, hope u guys can refine it, and put into new version
of phpmanual
Je pense que je n'ai pas besoin de donner d'explication supplémentaire...
Voilà. Bon code!
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 8 sept. 2005 à 13:38
Merci triumphs... J'ai changé pleins de trucs, malheureusement tous en lmeme temps, le fichier ne fait plus que 7ko au lieu de 11ko.
Je suis donc décu pour vous car je ne sais pas dire qu'est ce qui permet de faire fonctionner le chmilblic !
En tout cas maintenant ca fonctionne jusqu'a 1MO, ce qui est deja beaucoup mieux, meme largement suffisant. En ce qui concerne le message d'erreur :
Class Mail, method attach : file ../upload/test.jpeg can't be found
Qui était fort dérangeant, je l'ai modifié (ligne 379 pour vous) par La pièce jointe ne peutr dépasser 1000ko, veuillez cliquer sur "page précédente" pour en choisir une autre...
Ne pas oublier de \ devant les " si vous faites pareil !
Ca me semble trop con, mais j'ai aussi ajouté un 0 pour le :
Mais ca me semble trop simple, etmaintenant que ca marche je touche plus a rien lollll
Merci pour votre soutient, j'espère que le mien vous donnera un petit coup de pouce !
Stéphane
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 8 sept. 2005 à 00:13
Pour répondre à ghostleretour:
C'est un problème récurent... ... Malheureusement, le code fonctionne parfaitement dans mon cas.
Tu devrais essayer de reprendre la partie du code qui fait l'upload du fichier et faire ainsi un formulaire qui ne fait qu'uploader un fichier. Ensuite, essaye de voir si le fichier uploadé apparaît sur le serveur (dans son intégrité!). Si tel est le cas, cela signifie que l'upload s'est bien passé, mais que, dans le code pour l'envoi d'e-mail, une erreur ne permet pas de retrouver le fichier sur le serveur.
Si ton problème persiste, il peut être dû à un porblème lors du transfère; en ce sens que le transfère n'a pas pu s'effectuer correctement (temps d'attentetrop long par rapport au temps d'exécution!), etc.
Le mieux serait que tu trouves un autre code qui effectu l'upload correctement et que tu... ... en fasses profiter tout le monde!!!
Bonne chance, bon code et tiens-nous au courrant!
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 7 sept. 2005 à 23:48
Class Mail, method attach : file ../upload/test.jpeg can't be found
Meme probleme pour moi, mais uniquement pour les pieces jointes de plus de 100ko, d'ou peut provenir le probleme pour vous ???
Stéphane
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 2 sept. 2005 à 18:00
Pour répondre à snake0000:
Normalement, la fonction 'Attach' de l'objet est censée pouvoir attacher plusieurs fichiers.
Toutefois, le code que tu donnes en exemple me semble erroné:
[Voilà ce que j'aurais mis]
//Attachement du premier fichier; s'il existe...
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)){
copy($NomFichier, "../PHPMail_TempUpload/$name");
}
$m->Attach( "../PHPMail_TempUpload/$name", "application/octet-stream" );
}
// Attachement du deuxième fichier; ... ...
if ("$NomFichier2"!="") {
$name = $HTTP_POST_FILES['NomFichier2']['name'];
if (is_uploaded_file($NomFichier2)){
copy($NomFichier2, "../PHPMail_TempUpload/$name");
}
$m->Attach( "../PHPMail_TempUpload/$name", "application/octet-stream" );
}
$m->Send(); /* Envoi du mail */
if ("$NomFichier"!=""){
$name = $HTTP_POST_FILES['NomFichier']['name'];
Unlink("../PHPMail_TempUpload/$name");
}
if ("$NomFichier2"!=""){
$name = $HTTP_POST_FILES['NomFichier2']['name'];
Unlink("../PHPMail_TempUpload/$name");
}
Ce bout de code me semble plus juste; je ne l'ai toutefois pas testé.
En voyant ce que je viens d'écrire, je me dis que l'on peut facilement dynamiser tout cela et, donc, pouvoir envoyer un nombre arbitraire de fichiers joints... ...
J'espère que ça pourra t'aider; bon code!
cs_snake0000
Messages postés1Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention 2 septembre 2005 2 sept. 2005 à 16:13
bonjour,
Le script fonctionne à merveille cependant je souhaiterais pouvoir envoyer 2 pieces jointes que je nomme dans le formulaire NomFichier2
J'ai alors rajouté dans formmail.php les quyelques lignes suivantes sans aucun résultats : il continue à n'envoyer qu'une seule piece jointe :
if ("$NomFichier_name"!="" ) {
copy("$NomFichier","../upload/$NomFichier_name");
copy("$NomFichier2","../upload/$NomFichier2_name");
$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );
$m->Attach( "../upload/$NomFichier2_name", "application/octet-stream" );
}
$m->Send();
if ("$NomFichier_name"!="" ) {
Unlink("../upload/$NomFichier_name");
Unlink("../upload/$NomFichier2_name"); }
echo "$reponse";
Si quelqu'un avait une idéé?
Merci d'avance
fanman
Messages postés3Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention20 septembre 2005 29 août 2005 à 23:21
Merci DEFRANCESCO, trop top, pareil j'me suis trop casser la tête est c'était si simple...... Encore Merci
catdj
Messages postés3Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention14 mai 2005 29 août 2005 à 18:34
merci DEFRANCESCO pour ton aide, ça fonctionne nickel et pourtant je me suis pris le tête un bon moment sans trouver.
Bon code à tous ;-)
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 29 août 2005 à 17:22
Pour répondre à defrancesco:
Dans ton cas, j'opterais pour JavaScript; en effet, étant effectué sur la page ou se trouve le formulaire, le même type de test permet le contrôle du formulaire sans quitter la page courrante... C'est l'avantage de l'exécution côté client!
Ensuite, lorsque le test est réussi, tu peux faire l'appel au code PHP.
Tu peux trouver de très JavaScript sur le net ou développer ton propre code (ce que je te conseille!), car généralement, les vérifications de formulaires sont des codes qui doivent souvent être mis à jour et on sais bien que c'est plus facile de relire son propre code.
J'espère que j'ai pu t'aider... Bon code!
cs_defrancesco
Messages postés16Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention20 juin 2005 18 août 2005 à 15:52
Oui, il suffit de remplacer:
charset=us-ascii par charset=iso-8859-1
dans : function_build_attachement()
fanman
Messages postés3Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention20 septembre 2005 18 août 2005 à 15:37
Salut, alors moi il marche très bien à part comme CATDJ j'ai tous les é ç ' qui sont remplacé par des i ou des \ pour l'apostrophe.
Auriez vous une idée ?
cs_defrancesco
Messages postés16Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention20 juin 2005 13 août 2005 à 10:43
Bonjour,
J'aimerai apporter ma petite pierre à l'édifice.
J'ai installé le script de Loïc Bresler, l'année dernière et il fonctionne parfaitement.
Par contre, j'essaie désespérément de rendre un champ obligatoire, mais je n'ai pas trouvé la solution.
Si je mets: pour le champ "Nom" obligatoire,
if ($Nom == 0)
{
echo("Mettre un nom");
die ();
}
Le script s'arrête bien mais je n'arrive pas à retourner dans le formulaire.
Quelqu'un a-t-il une solution.
Merci d'avance.
Christian
bnj0608
Messages postés1Date d'inscriptionmercredi 14 juillet 2004StatutMembreDernière intervention18 juin 2005 18 juin 2005 à 16:12
Bonjour, et merci pour ce script.
Il ne fonctionnait pas avec des pdf et autres type mime.
j'ai rajouté un bout de script pour envoyer le bon type mime à la méthode attach.
voici la fin du script :
Rien ne vous empèche de rajouter autant de type mime que vous voulez.
______________________________________________________________________
$subject=StripSlashes($subject);
$msg=StripSlashes($msg);
$msg="Message depuis votre site web:
$msg";
$m= new Mail; // create the mail
$m->From( "$email" );
$m->To( "$dest");
$m->Subject( "$subject" );
$m->Body( $msg); // set the body
if ($email1!="") {
$m->Cc( "$email1");
}
$m->Priority($priority) ;
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)) {
copy($NomFichier, "../upload/$name");
}
// type de contenu non defini
if ($name!="") {
// on essaie de reconnaitre l'extension
switch(strrchr(basename($name), ".")) {
case ".gz": $filetype = "application/x-gzip"; break;
case ".tgz": $filetype = "application/x-gzip"; break;
case ".zip": $filetype = "application/zip"; break;
case ".pdf": $filetype = "application/pdf"; break;
case ".png": $filetype = "image/png"; break;
case ".gif": $filetype = "image/gif"; break;
case ".jpg": $filetype = "image/jpeg"; break;
case ".txt": $filetype = "text/plain"; break;
case ".htm": $filetype = "text/html"; break;
case ".html": $filetype = "text/html"; break;
default: $filetype = "application/octet-stream"; break;
}
}
$m->Attach( "../upload/$name", $filetype );
}
$m->Send();
if ("$NomFichier"!="") {
Unlink("../upload/$name");
}
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 17 juin 2005 à 18:31
Salut,
Bon, je vois que ce formulaire n'en fini pas de créer des crasses aux nouveaux venus ainsi qu'à de plus expérimenté... ...
Pour l'instant, je ne peux pas le modifier car je suis relativement occupé. Toutefois, pour les plus patients, je promets de jeter un SÉRIEUX coup d'oeil à ce f.... code qui en fait ..... plus d'un! :-)
@+!
cs_garnaud
Messages postés1Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention17 juin 2005 17 juin 2005 à 15:16
HELP !
voici que que j'obtiens
(Mon hébergeur : Amen.fr)
// code de formail.php
Warning: copy(): open_basedir restriction in effect. File(/tmp/php2RrF9t) is not within the allowed path(s): (.:/home/sites) in /home/sites/site171/web/team/formmail.php on line 385
Class Mail, method attach : file ../uload/gg.txt can't be found
krokroline02
Messages postés1Date d'inscriptionsamedi 18 novembre 2000StatutMembreDernière intervention 6 juin 2005 6 juin 2005 à 16:10
bonjour,
j'ai ce message d'erreur qui s'affiche:
Warning: copy(): open_basedir restriction in effect. File(/tmp/phptg99UY) is not within the allowed path(s): (.:/home/sites) in /home/sites/site77/web/formulaire/formmail.php on line 391
Class Mail, method attach : file ../upload/Critères qualité.doc can't be found
j'ai bien créée les répertoires et effectuée le chmod77 sur le repertoire upload.
donc là je suis perdue
merci pour votre aide
catdj
Messages postés3Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention14 mai 2005 28 mai 2005 à 19:06
bonjour,
pour vous dire que la méthode fonctionne bien sauf un tit point de détail, mais qui peut avoir son importance: tous les caractères accentués ( é è à ç ....)sont remplacés.
je suis super débutant en php ( en clair je connais rien) et je ne sais comment modifier le code pour entrer les valeurs exactes de ces caractères.
si quelqu'un à une idée, ce serait cool
Merci ;)
jetjet51
Messages postés3Date d'inscriptionsamedi 18 octobre 2003StatutMembreDernière intervention 6 mars 2005 6 mars 2005 à 01:31
sorry : autre problème
message d'erreur pour les fichiers > 500Ko
Class Mail, method attach : file ../upload/myfile.exe can't be found
jetjet51
Messages postés3Date d'inscriptionsamedi 18 octobre 2003StatutMembreDernière intervention 6 mars 2005 6 mars 2005 à 01:22
Merci pour le script, tous est nickel
sauf un chti priblème : tous les é sont remplacé par des i
Voici la portion de mon code :
$body ="expediteur :" .$from ."\n";
$body .="Pack Web : " .$packweb."\n";
$body .="Nombre de pages supplémentaires :" .$nombrepages. "\n";
cela donne comme mail :
expediteur :aqz@ffg.dsg
Pack Web : --Choisissez votre pack--
Nombre de pages supplimentaires :0
Que faire ? merci d'avance
PS : cela marchait en utilisant la fonction mail() de php
cyberjosee
Messages postés3Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention18 février 2005 18 févr. 2005 à 16:05
Oups! Oubliez le fichier descriptif. C'est celui qui est associé au code qui ne fonctionne pas pour moi. Mais le reste est bon.
Milles excuses.
Cyberjosee
cyberjosee
Messages postés3Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention18 février 2005 18 févr. 2005 à 16:01
Ok. J'ai trouvé ce que je cherchais. Voici le code qui s'adapte mieux au serveur de mon hébergeur:
FICHIER DESCRITIF:
Formail +
Script écrit par Loïc Bresler
webmaster@webfr.org
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...
LA FEUILLE EN PHP
<?php
//======================
// Author: TeeJay
//
// Date: 09-2002
//
// Description:
// This function takes the input given by
// the user and processes it.
// From the moment that the user presses submit
// a temorary file is stored in a temporary directory
// specified by upload_tmp_dir on your php.ini,
// then we get it's size and check to see that is not
// greater than the MAX_FILE_SIZE specified on the form.
// If it is all ok up to now, it makes a copy of the temp
// file to the specified new directory.
//$new_dir "uploads/";
if(!is_dir($new_dir)) echo "Please first create the $new_dir folder(s) to store the uploads.";
function handleupload() {
global $new_dir;
// Check if it was infact uploaded - by using ['tmp_name']
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "
";
// Check it's size
if($_FILES['userfile']['size'] < = $_POST['MAX_FILE_SIZE']) {
// get it's real name
$realname = $_FILES['userfile']['name'];
// Attempt to copy to users/ <-- Make sure this folder exists already
if(copy($_FILES['userfile']['tmp_name'], $new_dir.$realname)) {
echo "
$realname was successfuly uploaded";
}else {
//this is probably because the directory does not exist yet
echo "
$realname could not be successfuly uploaded";
}
}else {
// the file to upload exceeds the specified MAX_FILE_SIZE
echo "
The File size exceeded the ".($_POST['MAX_FILE_SIZE']/1024)."kb max file size allowed.
";
}
} else {
// File is greater than the upload_max_filesize set on your php.ini
echo "
Possible file upload attack: filename ".$_FILES['userfile']['name'].".";
}
}
<?php
// When the user clicks on the submit/upload button
// this statement becomes true and the handleupload
// function is called.
if(isset($_POST['submit'])) {
handleupload();
}
?>
<!-- Make sure to add this: ENCTYPE ="multipart/form-data" to your <form> tag for it to work -->
<form ENCTYPE= "multipart/form-data" method="POST" action="upload.php">
File:
Please click only once and wait for confirmation
</form>
[upload.php clear form]
</html>
LA PAGE EN HTML
<html>
<head>
<title>File Upload</title>
</head>
<?php
// When the user clicks on the submit/upload button
// this statement becomes true and the handleupload
// function is called.
if(isset($_POST['submit'])) {
handleupload();
}
?>
<!-- Make sure to add this: ENCTYPE ="multipart/form-data" to your <form> tag for it to work -->
<form ENCTYPE="multipart/form-data" method="POST" action="upload.php">
File:
Please click only once and wait for confirmation
</form>
[upload.php clear form]
</html>
Ce code donne une deuxième alternative pour différents serveurs. Bonne fin de semaine.
Merci de m'avoir lue.
CyberJosée
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 18 févr. 2005 à 00:07
A première vue, il n'y a qu'une seule faute qui apparait dans ce que j'avais écrit auparavant; en effet, la commande 'unlink' ne doit pas s'effectuer sur 'nomFichier', mais sur 'name'... ... ce qui a, somme toute, un peu plus de sense:
[Ancienne version]
...
if ("$NomFichier"!="") {
Unlink("../upload/$NomFichier");
}
...
[Correction]
...
if ("$NomFichier"!="") {
Unlink("../upload/$name");
}
...
Pour l'instant, je ne sais pas si ceci règle le problème de 'cyberjosee', mais c'est le seul détail qui m'est apparu lorsque que j'ai relu mon message.
Essayer d'effectuer un test avec cette correction sans oublier de créer, à l'avance, le répertoire temporaire pour l'upload et d'y ajouter tous les droits d'accès. Si le test réussi, supprimer les droits afin de ne laisser que ceux qui sont nécessaires (pas besoin de laisser la porte ouverte à n'importe quoi).
Bonne chance, bonne nuit et noubliez pas que ce n'est pas le seul code qui existe. Regardez à gauche et à droite ce qui se fait et faites vous-même une synthèse de cela; c'est ce qui permet de progresser!
NB: En ce qui me concerne, le code que j'ai écrit fonctionne... Je viens de l'essayer pour me rassurer!
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 17 févr. 2005 à 23:49
Bon, je vois qu'il y a encore une erreur dans ce code; je vais jeter un coup d'oeil à ce que j'ai codé (ça risque de prendre du temps, car pas mal de petites 'modifications-gadget' ont été apportées depuis que j'ai écrit ce code)... ...
cyberjosee
Messages postés3Date d'inscriptionjeudi 17 février 2005StatutMembreDernière intervention18 février 2005 17 févr. 2005 à 21:54
Ouf! C'est pas évident le php.
J'ai testé le code, j'ai eu l'erreur method attach : file ../upload/essai.gif can't be found
Ensuite j'ai effectuer la correction de Triumph
et ca marche toujours pas. Là j'ai :
Parse error: parse error in /home/httpd/vhosts/mausolee.ca/httpdocs/form/formmail.php on line 393
cs_francis9
Messages postés1Date d'inscriptionvendredi 4 février 2005StatutMembreDernière intervention 4 février 2005 4 févr. 2005 à 12:06
Bonjour,
Je suis trés trés débutant!!!
J'essaye d'utiliser cette application, j'ai installé suivant les instructions fournies, mais chaque fois que je clique sur "envoyer", le systéme me demande de charger formmail.php???
J'ai fait ce test sur wanadoo et sur easyphp.
Quelle personne bienveillante voudrait bien aider un beotien?
Merci.
cs_karamelo
Messages postés5Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention21 août 2004 21 août 2004 à 12:34
merci pour ton aide!!!
quand je vais avoir un peu de temps je vais tester tout ça
pour voir si j'arrive et le faire marcher
encore merci
boby2222
Messages postés8Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention21 août 2004 21 août 2004 à 06:27
l dessus je ne peut pas trop te repondre car C'est pâs moi qui fait la source mais je peut te donner un vieu code qui vérifie si les champs ont été remplie:(a toi te le mettre dans cette source pour que sa fonctionne. redonne des nouvelle si sa marche ou pas.)
<?
$MailTo = "user@monsite.com";
$MailSubject = "titre du message";
$MailHeader = "adresse"; //adresse email qui va figurer dans le champ "expéditeur" du email et qui peut être remplacé par la variable "$champx" ("$champ3").
$Envoi = 1; //initialisation de la variable envoi à 1
if ($form == ""){ //nom du champ1
echo("Veillez remplir le formulaire.
");
$Envoi = 0;
}
else {
$MailBody = "form : $name\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
}
if ($Envoi == 0) echo("
Retour
");
//Envoi du message
if ($Envoi == 1) { //vérification que la variable envoi est bien à 1
mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
echo("Votre message a bien été envoyé.
Merci."); echo("
Retour
"); //affichage d'un message de confirmation.
}
?>
cs_karamelo
Messages postés5Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention21 août 2004 17 août 2004 à 20:11
je suis toujours dans le noir au sujet du controle des champs du formulaire en relation au script
les "gros bras du php " sont partis en vacances :-(
boby2222
Messages postés8Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention21 août 2004 17 août 2004 à 19:34
il est déjas limiter sur le script je pense qu'il est limiter a 1 mb mais de toute facon le max qu'on peut uploader c'est 2mb . si ca dépasse ce 2 mb le fichier ne sera pas envoyer. si tu veut la changer la portion de code dans le "form.html":
<td>Fichier joint:</td>
<td></td>
change le value ="100000" pour la grosseur que tu veut. c'est en octets. Essaye d,envoyer un fichier plus gros que le "value" pour voir si c'est bien cala. parce que des fois je peut me tromper.... mais pas souvant loll :)
cs_gabyone
Messages postés1Date d'inscriptionmardi 17 août 2004StatutMembreDernière intervention17 août 2004 17 août 2004 à 16:52
Salut à tous, une question d'un non développeur PHP
Quelqu'un sait -il comment limiter la taille des fichiers uploader?
cs_karamelo
Messages postés5Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention21 août 2004 13 août 2004 à 20:13
j'essaie de comprendre le script c'est les parties// function ValidEmail CheckAdresses// je ne vois pas trop coment ça fonctione ça bloque rien du tout si une fausse adresse est dans le champ email, il me semble que d'autres parties ne serve a rien pour envoyer les donnes du formulaire
/////tapez pas trop fort je suis vraiment debutant ////////
boby2222
Messages postés8Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention21 août 2004 13 août 2004 à 16:56
oui c'est sur que si tu clique sur envoyer meme si les champ son vide tu vas recevoir un message vide. il y a rien qui dit qu'on a oublier de remplir les champ.
je sais pas si c'st ca que tu voulais dire. sinon ce n'etait pas clair pour moi
cs_karamelo
Messages postés5Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention21 août 2004 13 août 2004 à 01:02
desole j'ai app un peu fort sur bouton
cs_karamelo
Messages postés5Date d'inscriptionsamedi 8 février 2003StatutMembreDernière intervention21 août 2004 13 août 2004 à 00:52
moi c'est les validations des adresses mails q j'ai du mal
ça passe meme si les champs son vides !!!
boby2222
Messages postés8Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention21 août 2004 3 août 2004 à 05:43
je ne sais pas sur ifrance mais surement que si tu clique avec le bouton de droit sur le fichier "upload" et ensuite propriété. ou quelque part ou il y a les propriétédu dossier. ensuite tu met les chmod a 777 ou si ces des case a cocher , coche les toute. si tu ne trouve pas comment peut-etre que tu peut pas parceque ifrance c'est un hébergeur gratuit et il peuve l'avoir bloquer. dans ce cas si tu devra upgrader ton hébergement et te diriger vers le payant comme j'ai fait.
fa0007
Messages postés43Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention 6 décembre 2008 30 juil. 2004 à 16:20
Ce serait pour savoir comment on donne le droit a l'écriture du fichier upload sous ifrance car je suis vraiment nouveau en php merci de me repondre ....
FéLi 'Z
cs_Varod
Messages postés15Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention25 août 2004 26 juil. 2004 à 12:46
salut!
De mon coté le script est fonctionnel (sous lycos) :o)
Cependant, j'ai un tit pb concernant les super nouveautes : les anti-spams!
Je voudrai donc savoir s'il y a une possibilité pr ne pas recevoir le mail annoté de la mention SPAM.
Merci
Vince.
boby2222
Messages postés8Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention21 août 2004 26 juil. 2004 à 07:09
peut etre la taille de ton fichier que tu upload est trop lourd. je ne sais pas si tu sais qu'on peut seulement envoyer des fichier de moins de 2 mb (je pense lol :D). te reste t'il de la plache sur ton serveur? des fois on sait jamais sinon je n'ai aucune idée sur la nature de ton probleme
cs_Titigre
Messages postés11Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention 9 juin 2009 20 juil. 2004 à 16:03
pour ma part, j'ai un petit probleme, j'ai bien le fichier joint mais il perd 19 octetset il est impossible a lire. j'ai vérifié la taille du fichier a plusieurs reprises dans la code toujours, la meme taille, c'est lors du transfert qu'il doit y avoir un probleme. connaissez vous ce problème surtout que je suis en local donc pas de problème avec le serveur !!!
Aidez moi c'est la quatrieme versions que j'essaie en 3 jours et toujours le meme resultat, j'en peux plus !!!!!!!!
help me please
Titigre
boby2222
Messages postés8Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention21 août 2004 2 juil. 2004 à 05:55
vous allez me trouver très fatigant voir très très fatigant mais moi ca me dérange pas. Vous allez me trouver nul mais ca me dérange pas bref je me fou de se que vous pensez de mes compétance en la matière. deuxième bref laisser tomber les 2 message du haut j'étais completement dans le champ quand j'ai écris c'est message. c'est correcte le code fonctionne a merveille vous etes des génie (en particulier M.LiTtLeBuBu et M.triumphs) et moi je suis celui quui frotte la lampe. vous me suivez?. Si vous avez repondu non vous pouvez aretter de lire car il y a plus rien d'interressant a lire sur ce message a part que merci encore au génie de la lampe ainsi qu'à tout ceux qui ont lu le message jusqu'au bout car il était rempli de connerie initile et qui sert a rien. Merci.
boby2222
Messages postés8Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention21 août 2004 2 juil. 2004 à 05:43
Bon je rectifie mon message: Je suis incapable d'acceder au fichier joint avec la messagerie microsoft outlook mais avec la messagerie de mon hebergeur sa marche (j'ai le fichier joint).
Savez vous pouquoi? Ou il y a tu un moyen de corriger ce probleme pour que je continue d'utiliser outlook ou bien il y a tu un autre programme de messagerie du meme genre que outlook ou je retourne sur la messagerie de men serveur et ca me tente pas :(
boby2222
Messages postés8Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention21 août 2004 2 juil. 2004 à 05:33
POur ma part avec le code réviser de M.triumphs je click sur envoyer et il ya aucun message d'erreur (tout est normale) mais la seul chose c'est que je ne recoit pas le fichier que j'ai uploader.
les répertoire sont en code chmod 777
je recoit un mail mais pas de fichier joint.
Comprenez vous quelque chose la dedans en t k moi rien déja que je ne suis pas un génie dans le php
Merci de bien vouloir m'expliquer quoi faire.
cs_masterpingouin
Messages postés28Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention14 juillet 2006 23 juin 2004 à 19:49
Je suis chez multimania et je sais pas si j'ai un serveur smtp, mais en tout cas j'ai le message d'erreure suivant:
lass Mail, method attach : file ../upload/test.jpeg can't be found
Portant, j'ai fais le bordel avec le fichier upload:!!!!
Help me please!!
MERCI
jmvd2
Messages postés17Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention16 mars 2010 1 juin 2004 à 20:43
Pour ce script ne changes rien, pour ma part ça marche.
Seul truc
Créer deux répertoires soit en racine, mais pour une meilleure organisation, je les ai créés dans un autre répertoire.
ex:
\mail\forms
\mail\upload (n'oubliez pas d'autoriser les droits en écriture sur ce répertoire)
Dans "forms" coller les deux fichiers :
- form.html
- formmail.php (n'oubliez pas le paramétrage de ce fichier)
Et tout va pour le mieux dans le meilleur des mondes .. :-))
@+
cs_level
Messages postés8Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention25 décembre 2004 30 mai 2004 à 03:32
Merci à toi, ca fait plaisir d'avoir un script FONCTIONNEL.
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 30 mai 2004 à 03:28
> LiTtLeBuBu
Salut!
Tout comme 'level', je n'arrivais pas à fair emarcher ton conde. J'ai tester deux autres méthodes (pas plus de succès!) et j'en ai fait un pot pourri... ...
Il s'avère que ta méthode est fonctionne (en tout cas pour moi) si l'on corrige quelque peu les lignes où tu fais l'attachement:
[Ta version]
if ("$NomFichier_name"!="") {
copy("$NomFichier","../upload/$NomFichier_name");
$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );
}
$m->Send();
if ("$NomFichier_name"!="") {
unlink("../upload/$NomFichier_name"); }
[Ma version]
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)) {
copy($NomFichier, "../upload/$name");
}
if ("$NomFichier"!="") {
Unlink("../upload/$NomFichier");
}
Comme tu peux le voir, je n'ai pas changer grand chose à ta version, mais ceci évite la fameuse erreur:
"Class Mail, method attach : file ../upload/file.ext can't be found "
Bonne continuation!
cs_level
Messages postés8Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention25 décembre 2004 7 mai 2004 à 17:07
Quand j'ai dit que ca ne marchais pas j'avais déjà vérifier les 3 premières étapes et ca ne fonctionne pas un point c'est tout.
LiTtLeBuBu
Messages postés50Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention10 février 2009 7 mai 2004 à 10:36
1_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é :-) )
Accorder les permissions de lecture et écriture à ce répertoire (chmod 777)
2_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).
3_J'ai une erreur commençant par "Warning: Unable to create '../upload/..." lorsque je teste le script?
Vérifiez que le répertoire "upload" soit avec les bons droits, et que le fichier test ne soit pas trop gros. La plupart des hébergeurs limitent la taille maximale des fichiers uploadé à 2Mo.
J'ai une erreur: "Warning: Max file size of 0 bytes exceeded - file [NomFichier] not saved in Unknown on line 0"
C'est que votre hébergeur n'accepte pas les uploads de fichiers (envois de fichiers sur le serveur). Vous ne pouvez rien faire à part:
- Changer d'hébergeur
- Utiliser Sendmail présent sur ce site dans la rubrique Webmaster
J'ai une erreur "mail()"
Vérifiez que votre hébergeur n'ai pas désactivé la fonction mail()
NB: en local, il faut que vous ayez un serveur SMTP installé et correctement configuré pour que cela fonctionne.
Comment ajouter des champs dans le formulaire?
Si vous avez un champs telephone par exemple (en precisant bien le nom comme ceci dans le formulaire:
Trouvez la ligne suivante en bas du script:
$msg="Message depuis votre site web:
$msg";
Pour le récupérer il suffit de remplacer ces lignes par:
$msg="Message depuis votre site web:
$msg
Téléphone: $telephone";
Vous pouvez ajouter ainsi autant de champs que vous voulez. Pour les afficher dans le mail envoyer il suffit de reprendre le nom du champs avec un $ devant.
Peut-on améliorer la page sur laquelle tombe le visiteur après avoir soumis un mail?
La ligne suivante définie ce qui va être affiché lorsque le visiteur aura soumis un mail:
$reponse=StripSlashes("Entrez ici la réponse quand une personne envoie le formulaire");
Le message qu'il y a entre guillemets peut contenir du HTML et du Javascript. Vous pouvez même intégrer tout le code d'une page HTML faite séparement.
La seule restriction: pas de guillemets seuls dans ce code. Si votre HTML est généré par un éditeur HTML, remplacez tous les guillemets " par la combinaison antislash-guillemet "
LiTtLeBuBu
Messages postés50Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention10 février 2009 7 mai 2004 à 10:20
Chez moi marhce tres bien avec un copier coller de ce script
cs_level
Messages postés8Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention25 décembre 2004 6 mai 2004 à 21:57
c'est ce que j'ai fait et ca fonctionne pas.
LiTtLeBuBu
Messages postés50Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention10 février 2009 6 mai 2004 à 21:48
il faut creer le dossier upload et donner les droits en ecriture
cs_level
Messages postés8Date d'inscriptionsamedi 18 janvier 2003StatutMembreDernière intervention25 décembre 2004 6 mai 2004 à 21:37
Fonctionne pas ...
Class Mail, method attach : file ../upload/essai.gif can't be found
cs_Skwal
Messages postés17Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention 3 juin 2004 6 mai 2004 à 20:49
26 mai 2011 à 09:34
Merci pour ta réponse aussi rapide! Je n'avais pas vu ce post "corrigé" du formulaire..
mais j'ai toujours le même problème :/
Je reçois correctement le mail, mais la vérification de la syntaxe de l’expéditeur ne fonctionne pas.
Je m'explique, une fois devant le formulaire, je peu taper n'importe quoi, meme laisser le champs expéditeur vide, je peux envoyer mon mail sans problème, et dans ma boite mail, j'ai bien ce que j'ai tapé dans le champ.. (ou rien si je l'ai laissé vide)..
Le problème est une je réalise un site pour une petite PME, et ce formulaire va servir a envoyer des candidatures pour travailler... J'aimerais donc que le mail soit vérifié pour assurer une réponse..
Je test le script sur un FTP gratuit free. Ça peu venir d'eux?
Je ne pense pas car j'avais trouvé un autre script avant celui la, et la vérification mail marchait (mais pas al pièce jointe ^^')
J'ai essayer de "mixer" les 2 codes mais étant débutant en PHP, je n'y suis pas parvenu..
Merci
26 mai 2011 à 08:30
25 mai 2011 à 16:20
Tout d'abord, merci pour ce partage qui fonctionne pas trop mal!
Pourquoi "pas trop mal"? ^^
Eh bien j'ai un souci avec la verification du mail... je peu mettre n'importe quoi, meme laisser le champs vide, je n'ai pas de message d'erreur, le mail part quand meme :/
et je ne comprend pas pourquoi :/
merci
4 nov. 2010 à 15:41
Après avoir suivi la procédure d'installation des scripts, le message d'erreur suivant est affiché:
Objet non trouvé!
L'URL requise n'a pu etre trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d'informer l'auteur de cette page de cette erreur.
Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.
Error 404
127.0.0.1
11/04/10 18:33:26
Apache/2.2.15 (Win32) PHP/5.3.2
Que faire? tout en sachan que nous des novices en la matière
Merci pour votre précieuse aide
3 avril 2010 à 13:31
j'ai effectué quelque correctif et ça marche nikel.
3 avril 2010 à 02:13
//rectification c'est vrai que le script de triumph est beaucoup mieux mais pour ceux avec //qui l'un ou l'autre cas voient apparaître un msg d'erreur remplacer les lignes:
$m->Attach( "../upload/$name", "application/octet-stream" );
}
$m->Send();
//par le code ci-dessous
$m->( "../upload/$name", "application/octet-stream" );
$m->Send();
hébergement ovh sous windows sinon il y'a toujours erreur du genre unexpected &....on line ...
//n'oubliez pas la ligne:cf->commentaire triumph du 18 mai 2005 et Augmentez le maxFileSize
if ("$NomFichier"!="") {
Unlink("../upload/$name");
}
Bonne chance. "l'union fait la force" les deux codes m'ont pour ainsi dire aidée.
2 avril 2010 à 16:43
Merciiiiiiiiiiiiiiii pr les débutants comme moi .....et chapeau!
27 janv. 2010 à 18:13
D'avance merci...
25 sept. 2009 à 00:29
comme vous j'ai eu des problémes en testant ce code
j'ai effectué quelque touche maintenant ça marche nikel
si vous le voulez envoyer moi un mail a xoolicreative@gmail.com
17 sept. 2009 à 10:09
Warning: copy(../upload/htm.JPG) [function.copy]: failed to open stream: Permission denied in /home/ma111com/public_html/form/formmail.php on line 388
Class Mail, method attach : file ../upload/htm.JPG can't be found
Merci si vous pouvez m'indiquer comment proceder.
Très amicalement Michel Azéma
http://www.ma11.com
l'adresse de mon site.
20 juil. 2009 à 17:22
Mêmes problèmes que beaucoup de monde ici :
-Pas de pièce jointe malgré le 777.
-Rien dans "de" du mail (censé recevoir le mail de l'expéditeur)
-Rien dans "objet" du mail (censé recevoir le sujet saisi par l'expéditeur)
-Le corps du mail ne reçoit que le texte écrit en dur dans le script, ne reçoit pas ce qu'a écrit l'expéditeur dans "message"
-Priorité : n'apparaît nul part.
Bref, marche pas !
15 juin 2009 à 23:59
Message idem Macduf 21/02/09
J'ai suivi les indications pour me servir de ce code.
- J'ai à la racine de mon site un répertoire FR avec dedans les fichiers form.html et formmail.php
- j'ai créer à la racine du site un répertoire upload qui est bien en chmod 777
et rien à faire. Lors des essais, je reçois bien le mail, mais pas de pièce jointe.
- je travaille sous Dreamweaver
- le site est hébergé chez Amen
- j'ouvre le courrier avec Microsoft entourage sous Mac ou directement via le webmail du site.
HELP HELP avant que je m'arrache tous les cheveux. Merci
21 févr. 2009 à 21:55
Mon dossier upload à les permissions nécessaires (777).
D'où viens le problème?
J'ai essayé d'envoyer des images, dossier zip, mais toujours rien...
22 janv. 2009 à 14:42
- Mon hébergeur est OVH, mon fournisseur d'acces est Orange.
- Ma messagerie passe par orange en courrier sortant.
En rappel de mon problème : Le script effectue correctement le transfert de la pièce jointe dans mon répertoire "upload", et effectue aussi la suppression du fichier(cde unlink)après envoi du mail.
La question qui se pose(pour moi) reste le transfert de la pièce jointe qui ne se fait plus avec le texte du mail.
Mes dernières tentatives de modification du fichier FORMAIL.PHP en restent sur les lignes ci-dessous :
} // class Mail
$subject=StripSlashes($subject);
$msg=StripSlashes($msg);
$msg="Message depuis votre site web: $msg";
$m= new Mail; // create the mail
$m->From( "$email" );
$m->To( "$dest");
$m->Subject( "$subject" );
$m->Body( $msg); // set the body
if ($email1!="") {
$m->Cc( "$email1");
}
$m->Priority($priority) ;
if ("$NomFichier"!="") {
$name = $_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)){
copy($NomFichier,"upload/".$name."");
}
$m->Attach( "upload/".$name."", "application/octet-stream" );
}
$m->Send();
#if ("$NomFichier_name"!="") {
#Unlink("upload/$NomFichier_name"); }
echo "$reponse";
?>
je vous remercie de votre aide.
22 janv. 2009 à 09:34
peut tu nous dire quel est ton hébergeur ?
22 janv. 2009 à 00:16
S'il apparait un changement dans le comportement du script et que tu n'as visiblement pas fait de modification, c'est que cela vient probablement de ton hébergeur.
Dans un premier temps, tu devrais vérifier s'il n'y a pas une mise à jour de la version de PHP (voir même un changement dans la politique de sécurité de certaines fonctions du PHP telle que 'mail') ou de la gestion de fichiers qui aurait été faite par l'hébergeur.
Personnellement, je pencherais pour la première solution et plus précisément pour un changement de politique de sécurité de la fonction mail. Il faut tout de même se rappeler que l'utilisation automatiques (et peu contrôlée) de ce type de fonction s'apparente à une faille de sécurité pour les hébergeurs... ...
Bonne chance, bon code!
21 janv. 2009 à 22:39
Merci d'avance.
18 mai 2008 à 17:28
1, 5 ou X pièces jointes sans problème.
0.5, 1 ou 5 Mo sans problème (sauf vitesse, bien sur).
Avec ou sans commentaire.
Merci à l'auteur.
18 mai 2008 à 16:11
Pas la peine de faire une fixation avec <FREE
tout le bazar fonctionne correctement avec, pièce jointe comprise, quand on prend la peine de bien appliquer la procédure à la virgule prêt
ce script est tout simplement génial et rempli à la perfection son rôle
bon courage
18 mai 2008 à 15:29
Pour répondre à AZERIX, je suis moi-même chez FREE (tout le monde put se tromper :-)...) mais je n'ai pas de problème avec les pièces jointes.
Voir test : http://chroniq.free.fr/mail/form.html
Il est vrai que je ne suis pas habitué au PHP, c'est dire que je n'ai rien chamboulé dans la source originelle.
Bonne journée.
12 avril 2008 à 14:24
Message depuis votre site web:
et la rien alors que j'ai tester et envoyer un message !
4 janv. 2008 à 17:38
Pour ma part, j'ai réussi à contourner le problème en créant le dossier upload sur mon bureau (donc avec tous les droits) puis en l'uploadant sur mon ftp. Quand on regarde les attributs de ce dossier fraichement uploadé, on voit qu'il a a présent tous les droits (777).
En espérant que ça résoudra des problèmes ...
23 nov. 2007 à 22:37
Oui, mon hébergeur (le Neuf) semble accepter le php puisque j'arrive avec un expéditeur simple de formulaire (voir le script ci-dessous) à recevoir des mails sans problème.
Seulement, je voudrais y ajouter ce qu'il faut pour recevoir deux pièces jointes, en relation avec deux champs de type file de mon formulaire html... et ça, je n'y arrive pas.
Les pièces jointes ne sont jamais jointes... (c'est pourquoi je me suis intéressé au formulaire de littlebubu, mais, chez moi en tout cas, il fonctionne encore moins bien que mon script rudimentaire puisque je ne reçois cette fois ni la pièce jointe, ni le texte).
Si vous savez comment ajouter ce qu'il faut à mon script, je suis preneur.
Merci d'avance.
Voici le script :
<?php
$monadresse = "monadresse@waika9.com";
$objet = "Formulaire contact";
$message = "Formulaire Contact : \n";
foreach ($_POST as $name => $value) {
$message .= htmlspecialchars(stripslashes("$name: $value | "));
}
if (isset ($_POST['mail']) && ($_POST['mail']!= "") && (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$_POST["mail"])) && ($_POST['civilite']!= "") && ($_POST['nom']!= "") && ($_POST['prenom']!= "") && ($_POST['ville']!= "") &&( $_POST['message'] != ""))
{
$poster = 'From:'.$_POST['mail']."\r\n";
$poster.= 'Mime-Version: 1.0'."\r\n";
$poster.= 'Content-Type: text/plain; charset=iso-8859-1'."\r\n";
$poster.= 'X-Mailer: PHP/' . phpversion();
$poster.= "\r\n";
if (@mail($monadresse, $objet, $message, $poster)) {
echo "Merci de votre visite sur le site !\n";
echo "Votre message a bien été transmis !
\n";
} else {
echo "Désolé, votre message n'a pu être transmis.\n";
}
} else {
echo "
Merci de bien vouloir
Renseigner tous les champs signalés par un astérisque (*).
et vous assurer d'avoir fourni une adresse E-mail valide.
\n";
}
echo "Accueil";
?>
23 nov. 2007 à 19:06
En effet, de nombreux sites contiennent des formulaires qui ne respectent pas les standards et normes d'échange/protocole mail et qui ne vérifient pas comme il faut les paramètres qu'ils envoient en "additional parameters" à la fonction mail, ce qui permet d'injecter des headers et donc d'envoyer du spam massivement depuis les serveurs.
Personnellement, je pense que ce script est dépassé.
Je te conseille d'aller en télécharger un plus récent.
Ex: http://www.patrickhamy.net/
Qui à l'avantage de posséder son propre forum.
Bonne chance !
23 nov. 2007 à 18:41
23 nov. 2007 à 18:39
Le chmod est modifié mais mes mails arrivent toujours vides.
Pas d'indication de l'expéditeur, ni du sujet (alors que je les ai bien entrés dans le formulaire) et pas de pièce jointe ni de texte dans le message.
Comment faire ?
23 nov. 2007 à 17:52
je viens de modifier le chmod de mon répertoire upload mais j'ai eu du mal à comprendre comment me connecter à localhost avec filezilla pour faire cette opération.
Alors j'ai bien mis le chmod à 777 mais l'envoi du formulaire ne fonctionne toujours pas. Pour l'instant, j'ai le message d'erreur : "Class Mail, method Mail : Adresse invalide".
Faut dire que j'ai pas mal bidouillé le code et je ne sais plus où j'en suis. Je vais effacer tout cela et recommencer. :)
23 nov. 2007 à 12:59
C'est le droit d'accès chez le provider que l'on peut modofier avec FTP.
Quand ont transfert des dossiers et des fichiers sur le serveur via FTP on peut modifier les droits d'accès.
En général, il suffit d'aller sur le dossier (ou le fichier) désiré avec le pointeur de la souris et de faire un clique droit. Apparaît un menu avec la fonction CHMOD.
Il suffit alors de modifier le droit d'accès.
23 nov. 2007 à 10:45
J'ai visité le site du Zéro et le cours est effectivement très clair et intéressant.
Je pense donc que mon problème ne vient pas du chmod puisque mon serveur n'est pas sous linux, mais sous windows.
Simplement, les mails que je reçois avec le script du formulaire Littlebubu sont vides de tout texte comme de tout fichier joint. En quelque sorte, je reçois des enveloppes vides.
Bon, je vais quand même relire plus attentivement le cours sur le chmod... on ne sait jamais.
23 nov. 2007 à 07:04
Fais plutôt un saut sur le site du Zéro:
http://www.siteduzero.com/tuto-3-172-1-lire-et-ecrire-dans-un-fichier.html#ss_part_1
Bonne lecture
22 nov. 2007 à 13:49
Ce code est exactement ce qu'il me faut mais je n'arrive pas à le faire fonctionner chez moi.
Ma config : Windows XP, serveur Apache en local, navigateur firefox et thunderbird pour le courrier.
Mon problème avec le code est que je reçois un mail, avec le trombone m'indiquant qu'il y a un fichier attaché, mais ce mail est totalement vide (ni texte, ni fichier joint).
Je ne comprends rien au "chmod 777" qu'il faudrait peut-être faire sur le répertoire "upload", répertoire qui fonctionne d'ailleurs bien en principe car j'arrive à y uploader sans problème des fichiers avec un autre script.
Je viens de m'offrir un gros bouquin sur le PHP5 mais je n'en suis encore qu'à la préface ... :), et avant que je comprenne...
Si quelqu'un peut m'aider, merci d'avance.
19 nov. 2007 à 17:05
simplement oublié le dossier upload
19 nov. 2007 à 13:51
il fonction bien
17 oct. 2007 à 12:22
pas de problèmes avec le texte mais beaucoup avec piece jointe (Photo) hébergeur Free
j'ai ceci : Warning: copy(../upload/classic.jpg) [function.copy]: failed to open stream: No such file or directory in /mnt/152/sdc/0/6/glangl1/Courrier/formmail.php on line 387
Class Mail, method attach : file ../upload/classic.jpg can't be found
merci pour votre aide
cordialement
Gérard
http://glangl1.free.fr
19 sept. 2007 à 01:56
Mais comment rajouter des champs tels: nom, tel...
Merci
15 juil. 2007 à 20:26
---------
Je voulais dire merci a : LiTtLeBuBu et triumphs
Moi toute a marché tout de suite.. Aucune erreur. J'ai ajouté 4 champs supplémentaire (nom, prénom, #tel, age) et j'ai 2 pieces jointes..Tout marche parfaitement :)
Donc merci :)
--------
Je vais mettre les fichiers toute modifier sur mon site perso. Moi, le formulaire sert pour que les gens envoie leur candidature pour un emploi.
-Donc, vous aurez a modifier la page Merci.php
-Les paramètre du script dans : PHPFormmail.php (nom, email, etc.)
-L'action du post dans : phpform.php et le texte que j'ai ajouté plus haut pour mon usage perso :)
- Et faire ce que l'installation demande.. faire le dossier "upload" a coté du dossier qui contient (merci.php, PHPFormmail.php et phpform.php) et lui faire un CHMOD 777.
(si votre dossier ne s'appel pas "upload", ca marchera pas.. sauf si vous changer le nom dans du lien dans PHPFormmail.php.)
Pour l'avoir : http://www.super-yann.com/emploi.zip
20 mars 2007 à 18:28
Je suis désolé de faire chier, mais j'ai un soucis, je recois bien le mail, il semble contenir mes pj (le poids du message correspond) mais je n'arrive pas a ouvrir mes pj, elles n'apparaissent pas...
Aidez moi, sinon je vais faire du mal a quelqu'un de mon entourage, il faut bien que quelqu'un paie...
22 févr. 2007 à 22:17
Deja merci pour ce script qui est exactement ce qu'il me faut et qui fonctionne impecable. Malheureusement je souhaite integrer un deuxieme champs pour envoyer 2 pieces jointes. J'ai essayé le code indiqué plus haut, mais ça ne fonctionne pas.
Qulesqu'un pourrait m'aider ?
Merci par avance.
21 févr. 2007 à 08:44
Bon j ai juste un petit probleme , le code du tuto a l air de fonctionner , mais quand je clique sur le bouton envoie cela m ouvre la page "Merci pour votre message" que jai bien entendu cree , mais je ne recois aucun mail , ni piece jointe ......j ai fais plusieur essaie sur different boite , rien .... probleme de code ou hebergeur ??
ensuite a la place de mon message
$reponse=StripSlashes("merci pour votre message")
je voudrais inseret un lien de retour sur mon index.html comment puis-je faire
Merci d avance pour votre aide
KISA
4 févr. 2007 à 16:25
} // class Mail
$subject=StripSlashes($subject);
$msg=StripSlashes($msg);
$msg="Message depuis votre site web:
$msg
Nom: $nom";
$m= new Mail; // create the mail
mais le mail arrive avec un corp vide Message de votre site web. rien en dessous quelqu'un a t il une explication
Merci
3 nov. 2006 à 01:31
J'ai juste un soucis le nom de l'emetteur qui s'affiche dans ma messagerie est celui de mon compte free.(si quelqu'un a une solution ...)
Merci a tous
PS il serait utile de rajouter une fonction de verification des champs et enventuelement l'envoi de l'adresse IP de l'internaute.
2 nov. 2006 à 10:37
Merci a l'auteur et a ceux qui m'ont permis de le faire fonctionner
27 sept. 2006 à 12:11
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
8 sept. 2006 à 20:28
lorsque je remplis le formulaire sans piece jointe ca fonctionna avec une image ca donne
*****************************************************
Warning: copy() [function.copy]: open_basedir restriction in effect. File(../upload/DSCN0611.jpg) is not within the allowed path(s): (/mnt/128/free.fr/d/e/blueflugi) in /mnt/128/free.fr/d/e/blueflugi/formmail.php on line 387
Warning: copy(../upload/DSCN0611.jpg) [function.copy]: failed to open stream: Operation not permitted in /mnt/128/free.fr/d/e/blueflugi/formmail.php on line 387
Warning: file_exists() [function.file-exists]: Unable to access ../upload/DSCN0611.jpg in /mnt/128/free.fr/d/e/blueflugi/formmail.php on line 345
Class Mail, method attach : file ../upload/DSCN0611.jpg can't be found
******************************************
J'ai filezila et malgré que je change l'attribut en 777, lorsque je regarde les attributs ils restent en 700
merci de votre aide
25 juil. 2006 à 17:51
15 mai 2006 à 17:56
Not Found
The requested URL /01/formMail.htm was not found on this server.
Apache/1.3.34 Server at wildover.com Port 80
15 mai 2006 à 16:19
3 avril 2006 à 21:58
comment peut on faire pour ajouter une réponse à l'expediteur du formulaire c'est a dire à $email ?
merci a tous en tout cas le script marche super bien avec upload à 2Mo :
bebesurlenet
30 mars 2006 à 16:08
merci d'aider le padawan du php que je suis ou d'orienter vers un tuto debtant bien fait , pour formulaire avec piece jointe,
thx ++
seb
30 janv. 2006 à 15:05
J'ai suivi scrupuleusement vos conseils d'installation et je n'arrive pas à comprendre ce qui se passe, j'obtiens l'erreur suivante :
Fatal error: Cannot redeclare send() in /home/ju41718/mail/classMail.php on line 268
Pour information, j'ai créé un répertoire "mail" dans lequel j'ai stocké les deux fichiers PHP. Le répertoire est en CHMOD777.
La page sur laquelle se trouve mon formulaire a la balise <FORM> suivante :
<form name="mail" id="form" vname="FormName" action="mail/PHPFormMail.php" method="post" enctype="multipart/form-data" onSubmit="return controle2();">
Je ne sais pas ce qui peut empêcher le bon déroulement de l'opération, merci de m'aiguiller :)
23 déc. 2005 à 11:40
est c que quelqu un peu m aider à utiliser ce code sous windows xp avec wamp5!!
je veu le tester en local, j ai crée un répertoire au sein du repertoire de mon site(qui est en localhost) et j ai aussi crée le dossier upload, mé quand je clik envoyer le navigateur m affiche le code du fichier formmail.php!!
je sé pa si j ai fé une grande betise!!
merci.
3 oct. 2005 à 21:51
Stéphane
3 oct. 2005 à 19:22
pour mon dossier, je suis sous windows avec easyphp, donc je ne peux rien modifier, c'est gênant ???
comment faire ?
merci encore
3 oct. 2005 à 18:25
As tu bien modifié la taille du hidden maxfilesize dans le fichier HTML ?
Stéphane
3 oct. 2005 à 18:07
ce code fonctionne très bien chez moi. Hormis le fait qu'aucune pièce jointe n'est réellement envoyé, je n'arrive pas à la lire à partir de mon webmail courant, alors qu'il affiche bien une pièce jointe...
Est-ce quelqu'un a une idée ??
Merci
20 sept. 2005 à 10:52
http://www.webfr.org/index.html?page=formailfree
20 sept. 2005 à 09:51
J'ai encore un petite question.
Quelqu'un aurait-il réussi à faire fonctionner ce script sur FREE. Car malheureusement j'peux pas changé le chmod sous free.
Paralèlement à ça j'ai un forum phpbb avec un mod attache-mod ou j'upload des fichier dans un répertoire et ça marche, malgré le chmod. Y aurait'il une solution pour faire fonctionner ce script sous free, ou c'est moi qui ai m**dé... ?
Sinon ce script trop génial, encore bravo.
12 sept. 2005 à 20:44
-- Désolé LiTtleBuBu, je fais un peu de la pub pour moi... --
Voici l'adresse de la mise à jour de ce code:
http://www.phpcs.com/code.aspx?ID=33766
8 sept. 2005 à 23:31
Mais bon, je connaissait l'existance de cette balise et j'ai donc vérifié.
A parement donc, comme le fichier est trop gros par rapport a ce que le formulaire accepte, il n'est pas uploader sur le serveur et donc le PHP nous dit que le fichier n'existe pas (logique, il n'a pas été chargé car le formulaire le rejetait) !
L'énigme est résolue, tout me monde peut donc l'utiliser maintenant lolll
Stéphane
8 sept. 2005 à 21:29
Merci d'avoir cherché. Comme tu le dis, cela est trop con... ... Mais je crois que c'est bien la bonne méthode pour augmenter la taille limite du fichier uploadé. (Il me semble avoir lu cela quelque part, mais je ne me rappelle plus où; désolé!)
J'ai donc entrepris une petite recherche... ... Voici ce que j'ai pu trouver dans un forum (http://aspn.activestate.com/ASPN/Mail/Message/phpdoc/2012253):
------------------------------------------------------------------------
[2002-11-22 08:38:47] Xuefer at 21cn dot com
[quote from php manual
mian> >feature>>handling file uploads]
The MAX_FILE_SIZE hidden field must precede the file input field and
its value is the maximum filesize accepted. The value is in bytes.
[warnning]
warning: The MAX_FILE_SIZE is advisory to the browser. It is easy to
circumvent this maximum. So don't count on it that the browser obeys
you wish! The PHP-settings for maximum-size, however, cannot be fooled.
/warnning
/quote
it doesn't tell how php check the size
1 year ago I 1st time read it, and re-read it today, finally get what
it means
document should tell more to programmers:
----------
1. user's file size is checked at the beginning of transfer before
upload is done
2. hard limit: file size is check against "PHP-settings for
maximum-size", file which larger will be refused
3. then, soft limit: check against "MAX_FILE_SIZE" if there is one
hidden value before input file field
4. when transfer done, php-script is active, manage to store the
uploaded-file, however, value of MAX_FILE_SIZE easy to circumvent, and
cannot be trust on, your php-script should re-check the uploaded file
size as u wish.
FAQ: u said MAX_FILE_SIZE is untrustable, why we should make use of it?
why not use only php-script to check filesize?
answer: in current php, handling of upload file, scirpt is not active,
thus, cannot check filesize until transfer of upload file is done.
MAX_FILE_SIZE get ability to soft limit the filesize before user have
to wait too long.
----------
this is what i comprehend :)
yes, it's too long, hope u guys can refine it, and put into new version
of phpmanual
------------------------------------------------------------------------
Je pense que je n'ai pas besoin de donner d'explication supplémentaire...
Voilà. Bon code!
8 sept. 2005 à 13:38
Je suis donc décu pour vous car je ne sais pas dire qu'est ce qui permet de faire fonctionner le chmilblic !
En tout cas maintenant ca fonctionne jusqu'a 1MO, ce qui est deja beaucoup mieux, meme largement suffisant. En ce qui concerne le message d'erreur :
Class Mail, method attach : file ../upload/test.jpeg can't be found
Qui était fort dérangeant, je l'ai modifié (ligne 379 pour vous) par La pièce jointe ne peutr dépasser 1000ko, veuillez cliquer sur "page précédente" pour en choisir une autre...
Ne pas oublier de \ devant les " si vous faites pareil !
Ca me semble trop con, mais j'ai aussi ajouté un 0 pour le :
Mais ca me semble trop simple, etmaintenant que ca marche je touche plus a rien lollll
Merci pour votre soutient, j'espère que le mien vous donnera un petit coup de pouce !
Stéphane
8 sept. 2005 à 00:13
C'est un problème récurent... ... Malheureusement, le code fonctionne parfaitement dans mon cas.
Tu devrais essayer de reprendre la partie du code qui fait l'upload du fichier et faire ainsi un formulaire qui ne fait qu'uploader un fichier. Ensuite, essaye de voir si le fichier uploadé apparaît sur le serveur (dans son intégrité!). Si tel est le cas, cela signifie que l'upload s'est bien passé, mais que, dans le code pour l'envoi d'e-mail, une erreur ne permet pas de retrouver le fichier sur le serveur.
Si ton problème persiste, il peut être dû à un porblème lors du transfère; en ce sens que le transfère n'a pas pu s'effectuer correctement (temps d'attentetrop long par rapport au temps d'exécution!), etc.
Le mieux serait que tu trouves un autre code qui effectu l'upload correctement et que tu... ... en fasses profiter tout le monde!!!
Bonne chance, bon code et tiens-nous au courrant!
7 sept. 2005 à 23:48
Meme probleme pour moi, mais uniquement pour les pieces jointes de plus de 100ko, d'ou peut provenir le probleme pour vous ???
Stéphane
2 sept. 2005 à 18:00
Normalement, la fonction 'Attach' de l'objet est censée pouvoir attacher plusieurs fichiers.
Toutefois, le code que tu donnes en exemple me semble erroné:
[Voilà ce que j'aurais mis]
//Attachement du premier fichier; s'il existe...
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)){
copy($NomFichier, "../PHPMail_TempUpload/$name");
}
$m->Attach( "../PHPMail_TempUpload/$name", "application/octet-stream" );
}
// Attachement du deuxième fichier; ... ...
if ("$NomFichier2"!="") {
$name = $HTTP_POST_FILES['NomFichier2']['name'];
if (is_uploaded_file($NomFichier2)){
copy($NomFichier2, "../PHPMail_TempUpload/$name");
}
$m->Attach( "../PHPMail_TempUpload/$name", "application/octet-stream" );
}
$m->Send(); /* Envoi du mail */
if ("$NomFichier"!=""){
$name = $HTTP_POST_FILES['NomFichier']['name'];
Unlink("../PHPMail_TempUpload/$name");
}
if ("$NomFichier2"!=""){
$name = $HTTP_POST_FILES['NomFichier2']['name'];
Unlink("../PHPMail_TempUpload/$name");
}
echo "$reponse"; /* Affichage du message d'envoi réussi */
}
...
Ce bout de code me semble plus juste; je ne l'ai toutefois pas testé.
En voyant ce que je viens d'écrire, je me dis que l'on peut facilement dynamiser tout cela et, donc, pouvoir envoyer un nombre arbitraire de fichiers joints... ...
J'espère que ça pourra t'aider; bon code!
2 sept. 2005 à 16:13
Le script fonctionne à merveille cependant je souhaiterais pouvoir envoyer 2 pieces jointes que je nomme dans le formulaire NomFichier2
J'ai alors rajouté dans formmail.php les quyelques lignes suivantes sans aucun résultats : il continue à n'envoyer qu'une seule piece jointe :
if ("$NomFichier_name"!="" ) {
copy("$NomFichier","../upload/$NomFichier_name");
copy("$NomFichier2","../upload/$NomFichier2_name");
$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );
$m->Attach( "../upload/$NomFichier2_name", "application/octet-stream" );
}
$m->Send();
if ("$NomFichier_name"!="" ) {
Unlink("../upload/$NomFichier_name");
Unlink("../upload/$NomFichier2_name"); }
echo "$reponse";
Si quelqu'un avait une idéé?
Merci d'avance
29 août 2005 à 23:21
29 août 2005 à 18:34
Bon code à tous ;-)
29 août 2005 à 17:22
Dans ton cas, j'opterais pour JavaScript; en effet, étant effectué sur la page ou se trouve le formulaire, le même type de test permet le contrôle du formulaire sans quitter la page courrante... C'est l'avantage de l'exécution côté client!
Ensuite, lorsque le test est réussi, tu peux faire l'appel au code PHP.
Tu peux trouver de très JavaScript sur le net ou développer ton propre code (ce que je te conseille!), car généralement, les vérifications de formulaires sont des codes qui doivent souvent être mis à jour et on sais bien que c'est plus facile de relire son propre code.
J'espère que j'ai pu t'aider... Bon code!
18 août 2005 à 15:52
charset=us-ascii par charset=iso-8859-1
dans : function_build_attachement()
18 août 2005 à 15:37
Auriez vous une idée ?
13 août 2005 à 10:43
J'aimerai apporter ma petite pierre à l'édifice.
J'ai installé le script de Loïc Bresler, l'année dernière et il fonctionne parfaitement.
Par contre, j'essaie désespérément de rendre un champ obligatoire, mais je n'ai pas trouvé la solution.
Si je mets: pour le champ "Nom" obligatoire,
if ($Nom == 0)
{
echo("Mettre un nom");
die ();
}
Le script s'arrête bien mais je n'arrive pas à retourner dans le formulaire.
Quelqu'un a-t-il une solution.
Merci d'avance.
Christian
18 juin 2005 à 16:12
Il ne fonctionnait pas avec des pdf et autres type mime.
j'ai rajouté un bout de script pour envoyer le bon type mime à la méthode attach.
voici la fin du script :
Rien ne vous empèche de rajouter autant de type mime que vous voulez.
______________________________________________________________________
$subject=StripSlashes($subject);
$msg=StripSlashes($msg);
$msg="Message depuis votre site web:
$msg";
$m= new Mail; // create the mail
$m->From( "$email" );
$m->To( "$dest");
$m->Subject( "$subject" );
$m->Body( $msg); // set the body
if ($email1!="") {
$m->Cc( "$email1");
}
$m->Priority($priority) ;
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)) {
copy($NomFichier, "../upload/$name");
}
// type de contenu non defini
if ($name!="") {
// on essaie de reconnaitre l'extension
switch(strrchr(basename($name), ".")) {
case ".gz": $filetype = "application/x-gzip"; break;
case ".tgz": $filetype = "application/x-gzip"; break;
case ".zip": $filetype = "application/zip"; break;
case ".pdf": $filetype = "application/pdf"; break;
case ".png": $filetype = "image/png"; break;
case ".gif": $filetype = "image/gif"; break;
case ".jpg": $filetype = "image/jpeg"; break;
case ".txt": $filetype = "text/plain"; break;
case ".htm": $filetype = "text/html"; break;
case ".html": $filetype = "text/html"; break;
default: $filetype = "application/octet-stream"; break;
}
}
$m->Attach( "../upload/$name", $filetype );
}
$m->Send();
if ("$NomFichier"!="") {
Unlink("../upload/$name");
}
17 juin 2005 à 18:31
Bon, je vois que ce formulaire n'en fini pas de créer des crasses aux nouveaux venus ainsi qu'à de plus expérimenté... ...
Pour l'instant, je ne peux pas le modifier car je suis relativement occupé. Toutefois, pour les plus patients, je promets de jeter un SÉRIEUX coup d'oeil à ce f.... code qui en fait ..... plus d'un! :-)
@+!
17 juin 2005 à 15:16
voici que que j'obtiens
(Mon hébergeur : Amen.fr)
// code de formail.php
Warning: copy(): open_basedir restriction in effect. File(/tmp/php2RrF9t) is not within the allowed path(s): (.:/home/sites) in /home/sites/site171/web/team/formmail.php on line 385
Class Mail, method attach : file ../uload/gg.txt can't be found
6 juin 2005 à 16:10
j'ai ce message d'erreur qui s'affiche:
Warning: copy(): open_basedir restriction in effect. File(/tmp/phptg99UY) is not within the allowed path(s): (.:/home/sites) in /home/sites/site77/web/formulaire/formmail.php on line 391
Class Mail, method attach : file ../upload/Critères qualité.doc can't be found
j'ai bien créée les répertoires et effectuée le chmod77 sur le repertoire upload.
donc là je suis perdue
merci pour votre aide
28 mai 2005 à 19:06
pour vous dire que la méthode fonctionne bien sauf un tit point de détail, mais qui peut avoir son importance: tous les caractères accentués ( é è à ç ....)sont remplacés.
je suis super débutant en php ( en clair je connais rien) et je ne sais comment modifier le code pour entrer les valeurs exactes de ces caractères.
si quelqu'un à une idée, ce serait cool
Merci ;)
6 mars 2005 à 01:31
message d'erreur pour les fichiers > 500Ko
Class Mail, method attach : file ../upload/myfile.exe can't be found
6 mars 2005 à 01:22
sauf un chti priblème : tous les é sont remplacé par des i
Voici la portion de mon code :
$body ="expediteur :" .$from ."\n";
$body .="Pack Web : " .$packweb."\n";
$body .="Nombre de pages supplémentaires :" .$nombrepages. "\n";
cela donne comme mail :
expediteur :aqz@ffg.dsg
Pack Web : --Choisissez votre pack--
Nombre de pages supplimentaires :0
Que faire ? merci d'avance
PS : cela marchait en utilisant la fonction mail() de php
18 févr. 2005 à 16:05
Milles excuses.
Cyberjosee
18 févr. 2005 à 16:01
FICHIER DESCRITIF:
Formail +
Script écrit par Loïc Bresler
webmaster@webfr.org
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...
LA FEUILLE EN PHP
<?php
//======================
// Author: TeeJay
//
// Date: 09-2002
//
// Description:
// This function takes the input given by
// the user and processes it.
// From the moment that the user presses submit
// a temorary file is stored in a temporary directory
// specified by upload_tmp_dir on your php.ini,
// then we get it's size and check to see that is not
// greater than the MAX_FILE_SIZE specified on the form.
// If it is all ok up to now, it makes a copy of the temp
// file to the specified new directory.
//$new_dir "uploads/";
if(!is_dir($new_dir)) echo "Please first create the $new_dir folder(s) to store the uploads.";
function handleupload() {
global $new_dir;
// Check if it was infact uploaded - by using ['tmp_name']
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "
";
// Check it's size
if($_FILES['userfile']['size'] < = $_POST['MAX_FILE_SIZE']) {
// get it's real name
$realname = $_FILES['userfile']['name'];
// Attempt to copy to users/ <-- Make sure this folder exists already
if(copy($_FILES['userfile']['tmp_name'], $new_dir.$realname)) {
echo "
$realname was successfuly uploaded";
}else {
//this is probably because the directory does not exist yet
echo "
$realname could not be successfuly uploaded";
}
}else {
// the file to upload exceeds the specified MAX_FILE_SIZE
echo "
The File size exceeded the ".($_POST['MAX_FILE_SIZE']/1024)."kb max file size allowed.
";
}
} else {
// File is greater than the upload_max_filesize set on your php.ini
echo "
Possible file upload attack: filename ".$_FILES['userfile']['name'].".";
}
}
?>
<html>
<head>
<title>File Upload</title>
</head>
<?php
// When the user clicks on the submit/upload button
// this statement becomes true and the handleupload
// function is called.
if(isset($_POST['submit'])) {
handleupload();
}
?>
<!-- Make sure to add this: ENCTYPE ="multipart/form-data" to your <form> tag for it to work -->
<form ENCTYPE= "multipart/form-data" method="POST" action="upload.php">
File:
Please click only once and wait for confirmation
</form>
[upload.php clear form]
</html>
LA PAGE EN HTML
<html>
<head>
<title>File Upload</title>
</head>
<?php
// When the user clicks on the submit/upload button
// this statement becomes true and the handleupload
// function is called.
if(isset($_POST['submit'])) {
handleupload();
}
?>
<!-- Make sure to add this: ENCTYPE ="multipart/form-data" to your <form> tag for it to work -->
<form ENCTYPE="multipart/form-data" method="POST" action="upload.php">
File:
Please click only once and wait for confirmation
</form>
[upload.php clear form]
</html>
Ce code donne une deuxième alternative pour différents serveurs. Bonne fin de semaine.
Merci de m'avoir lue.
CyberJosée
18 févr. 2005 à 00:07
[Ancienne version]
...
if ("$NomFichier"!="") {
Unlink("../upload/$NomFichier");
}
...
[Correction]
...
if ("$NomFichier"!="") {
Unlink("../upload/$name");
}
...
Pour l'instant, je ne sais pas si ceci règle le problème de 'cyberjosee', mais c'est le seul détail qui m'est apparu lorsque que j'ai relu mon message.
Essayer d'effectuer un test avec cette correction sans oublier de créer, à l'avance, le répertoire temporaire pour l'upload et d'y ajouter tous les droits d'accès. Si le test réussi, supprimer les droits afin de ne laisser que ceux qui sont nécessaires (pas besoin de laisser la porte ouverte à n'importe quoi).
Bonne chance, bonne nuit et noubliez pas que ce n'est pas le seul code qui existe. Regardez à gauche et à droite ce qui se fait et faites vous-même une synthèse de cela; c'est ce qui permet de progresser!
NB: En ce qui me concerne, le code que j'ai écrit fonctionne... Je viens de l'essayer pour me rassurer!
17 févr. 2005 à 23:49
17 févr. 2005 à 21:54
J'ai testé le code, j'ai eu l'erreur method attach : file ../upload/essai.gif can't be found
Ensuite j'ai effectuer la correction de Triumph
et ca marche toujours pas. Là j'ai :
Parse error: parse error in /home/httpd/vhosts/mausolee.ca/httpdocs/form/formmail.php on line 393
et voici le contenu de la ligne 393:
$m->Attach( "../upload/$name", "application/octet-stream" );
Vous pouvez m'aider?
Merci
Cyberjosee
4 févr. 2005 à 12:06
Je suis trés trés débutant!!!
J'essaye d'utiliser cette application, j'ai installé suivant les instructions fournies, mais chaque fois que je clique sur "envoyer", le systéme me demande de charger formmail.php???
J'ai fait ce test sur wanadoo et sur easyphp.
Quelle personne bienveillante voudrait bien aider un beotien?
Merci.
21 août 2004 à 12:34
quand je vais avoir un peu de temps je vais tester tout ça
pour voir si j'arrive et le faire marcher
encore merci
21 août 2004 à 06:27
<?
$MailTo = "user@monsite.com";
$MailSubject = "titre du message";
$MailHeader = "adresse"; //adresse email qui va figurer dans le champ "expéditeur" du email et qui peut être remplacé par la variable "$champx" ("$champ3").
$Envoi = 1; //initialisation de la variable envoi à 1
if ($form == ""){ //nom du champ1
echo("Veillez remplir le formulaire.
");
$Envoi = 0;
}
else {
$MailBody = "form : $name\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
}
if ($Envoi == 0) echo("
Retour
");
//Envoi du message
if ($Envoi == 1) { //vérification que la variable envoi est bien à 1
mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
echo("Votre message a bien été envoyé.
Merci."); echo("
Retour
"); //affichage d'un message de confirmation.
}
?>
17 août 2004 à 20:11
les "gros bras du php " sont partis en vacances :-(
17 août 2004 à 19:34
<td>Fichier joint:</td>
<td></td>
change le value ="100000" pour la grosseur que tu veut. c'est en octets. Essaye d,envoyer un fichier plus gros que le "value" pour voir si c'est bien cala. parce que des fois je peut me tromper.... mais pas souvant loll :)
17 août 2004 à 16:52
Quelqu'un sait -il comment limiter la taille des fichiers uploader?
13 août 2004 à 20:13
/////tapez pas trop fort je suis vraiment debutant ////////
13 août 2004 à 16:56
je sais pas si c'st ca que tu voulais dire. sinon ce n'etait pas clair pour moi
13 août 2004 à 01:02
13 août 2004 à 00:52
ça passe meme si les champs son vides !!!
3 août 2004 à 05:43
30 juil. 2004 à 16:20
FéLi 'Z
26 juil. 2004 à 12:46
De mon coté le script est fonctionnel (sous lycos) :o)
Cependant, j'ai un tit pb concernant les super nouveautes : les anti-spams!
Je voudrai donc savoir s'il y a une possibilité pr ne pas recevoir le mail annoté de la mention SPAM.
Merci
Vince.
26 juil. 2004 à 07:09
20 juil. 2004 à 16:03
Aidez moi c'est la quatrieme versions que j'essaie en 3 jours et toujours le meme resultat, j'en peux plus !!!!!!!!
help me please
Titigre
2 juil. 2004 à 05:55
2 juil. 2004 à 05:43
Savez vous pouquoi? Ou il y a tu un moyen de corriger ce probleme pour que je continue d'utiliser outlook ou bien il y a tu un autre programme de messagerie du meme genre que outlook ou je retourne sur la messagerie de men serveur et ca me tente pas :(
2 juil. 2004 à 05:33
les répertoire sont en code chmod 777
je recoit un mail mais pas de fichier joint.
Comprenez vous quelque chose la dedans en t k moi rien déja que je ne suis pas un génie dans le php
Merci de bien vouloir m'expliquer quoi faire.
23 juin 2004 à 19:49
lass Mail, method attach : file ../upload/test.jpeg can't be found
Portant, j'ai fais le bordel avec le fichier upload:!!!!
Help me please!!
MERCI
1 juin 2004 à 20:43
Seul truc
Créer deux répertoires soit en racine, mais pour une meilleure organisation, je les ai créés dans un autre répertoire.
ex:
\mail\forms
\mail\upload (n'oubliez pas d'autoriser les droits en écriture sur ce répertoire)
Dans "forms" coller les deux fichiers :
- form.html
- formmail.php (n'oubliez pas le paramétrage de ce fichier)
Et tout va pour le mieux dans le meilleur des mondes .. :-))
@+
30 mai 2004 à 03:32
30 mai 2004 à 03:28
Salut!
Tout comme 'level', je n'arrivais pas à fair emarcher ton conde. J'ai tester deux autres méthodes (pas plus de succès!) et j'en ai fait un pot pourri... ...
Il s'avère que ta méthode est fonctionne (en tout cas pour moi) si l'on corrige quelque peu les lignes où tu fais l'attachement:
[Ta version]
if ("$NomFichier_name"!="") {
copy("$NomFichier","../upload/$NomFichier_name");
$m->Attach( "../upload/$NomFichier_name", "application/octet-stream" );
}
$m->Send();
if ("$NomFichier_name"!="") {
unlink("../upload/$NomFichier_name"); }
[Ma version]
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)) {
copy($NomFichier, "../upload/$name");
}
$m->Attach( "../upload/$name", "application/octet-stream" );
}
$m->Send();
if ("$NomFichier"!="") {
Unlink("../upload/$NomFichier");
}
Comme tu peux le voir, je n'ai pas changer grand chose à ta version, mais ceci évite la fameuse erreur:
"Class Mail, method attach : file ../upload/file.ext can't be found "
Bonne continuation!
7 mai 2004 à 17:07
7 mai 2004 à 10:36
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é :-) )
Accorder les permissions de lecture et écriture à ce répertoire (chmod 777)
2_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).
3_J'ai une erreur commençant par "Warning: Unable to create '../upload/..." lorsque je teste le script?
Vérifiez que le répertoire "upload" soit avec les bons droits, et que le fichier test ne soit pas trop gros. La plupart des hébergeurs limitent la taille maximale des fichiers uploadé à 2Mo.
J'ai une erreur: "Warning: Max file size of 0 bytes exceeded - file [NomFichier] not saved in Unknown on line 0"
C'est que votre hébergeur n'accepte pas les uploads de fichiers (envois de fichiers sur le serveur). Vous ne pouvez rien faire à part:
- Changer d'hébergeur
- Utiliser Sendmail présent sur ce site dans la rubrique Webmaster
J'ai une erreur "mail()"
Vérifiez que votre hébergeur n'ai pas désactivé la fonction mail()
NB: en local, il faut que vous ayez un serveur SMTP installé et correctement configuré pour que cela fonctionne.
Comment ajouter des champs dans le formulaire?
Si vous avez un champs telephone par exemple (en precisant bien le nom comme ceci dans le formulaire:
Trouvez la ligne suivante en bas du script:
$msg="Message depuis votre site web:
$msg";
Pour le récupérer il suffit de remplacer ces lignes par:
$msg="Message depuis votre site web:
$msg
Téléphone: $telephone";
Vous pouvez ajouter ainsi autant de champs que vous voulez. Pour les afficher dans le mail envoyer il suffit de reprendre le nom du champs avec un $ devant.
Peut-on améliorer la page sur laquelle tombe le visiteur après avoir soumis un mail?
La ligne suivante définie ce qui va être affiché lorsque le visiteur aura soumis un mail:
$reponse=StripSlashes("Entrez ici la réponse quand une personne envoie le formulaire");
Le message qu'il y a entre guillemets peut contenir du HTML et du Javascript. Vous pouvez même intégrer tout le code d'une page HTML faite séparement.
La seule restriction: pas de guillemets seuls dans ce code. Si votre HTML est généré par un éditeur HTML, remplacez tous les guillemets " par la combinaison antislash-guillemet "
7 mai 2004 à 10:20
6 mai 2004 à 21:57
6 mai 2004 à 21:48
6 mai 2004 à 21:37
Class Mail, method attach : file ../upload/essai.gif can't be found
6 mai 2004 à 20:49