donperez
Messages postés1Date d'inscriptionmercredi 11 octobre 2006StatutMembreDernière intervention15 février 2011 10 févr. 2011 à 19:33
BS
BS
Je viens de mettre en ligne sur mon serveur le formulaire en question et voici les erreurs signalés.
-------------------------oooooo-----------------------
+OK POP3 ready <1513414009.1297360860@pop1-g25.free.fr>
Warning: copy(../PHPMail_TempUpload/Image-38.jpg) [function.copy]: failed to open stream: No such file or directory in /public_html/Formu_piece_jointe/PHPFormMail.php on line 102
Class Mail, method attach : file ../PHPMail_TempUpload/Image-38.jpg can't be found
--------------------------oooooo-------------------------
Donc si quelqu'un veux bien me donner un coup de main pour résoudre le problème, moi je me perds pas mal dans les entrailles du code « php »
Un grand merci
Cordialement
Perez
cs_Stormo
Messages postés1Date d'inscriptionlundi 28 décembre 2009StatutMembreDernière intervention20 avril 2010 20 avril 2010 à 16:27
Hello,
je suis un peu nul en codes sources...
Pour la version ".htm" où faut-il mettre l'adresse email du destinataire du formulaire ?
wlperso
Messages postés9Date d'inscriptionlundi 20 septembre 2010StatutMembreDernière intervention20 septembre 2010 23 avril 2009 à 11:25
Bonjour,
je ne connais pas grand chose à PHP et au fonctionnements SMTP ... je suis très débutant.
J'essaie de configurer le script pour fonctionner sous hébergement gratuit iFrance + envoi avec SMTP GMAIL, mais vraiment sans succès ; je n'arrive même pas à décomposer pour débugger le fonctionnement.
Bref un vrai nul !
Quelqu'un peut-il m'aider ?
Merci d'avance
horinal
Messages postés11Date d'inscriptionvendredi 6 février 2009StatutMembreDernière intervention18 février 2011 2 févr. 2009 à 12:14
Bonjour
J'aimerais demande un aide s'il vous plait
je suis un débutant du code, membre d'un groupe de bénévole en Afrique on viens de créer notre site internet d'association et on aimera qu'on puisse permettre a nos visiteur d'envoyer un pièces joints directement sur nos formulaire.
si il y a une personne de bonne volonte veuillez s'il vous nous aide. notre e-mail: info@horinal.com et notre site internet www.horinal.com details sur le formulaire
Nom:
Prénom:
Ville:
Pays:
Tél:
Sujet:
Message:
et Pièeces Joints:
merci de votre aide veuillez directement nous envoyer le code sur info@horinal.com / info@groupthefuture.com ou horinal@live.com
merci
lcomb
Messages postés11Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention10 mai 2008 5 juil. 2008 à 18:36
Salut les gars je connais bien ce code j ai une question
je me suis fais un formulaire en local qui renvois sur un phpform sur mon site en post ca marche tout bien sauf le fichier joint je crois c est par ce que je suis en local et je post sur mon site est ce que c est ca ? C'est de la logique pure .Comment faire pour develloper en local avec une connection internet ,est ce en changeant l adresse de l uplaod ca marcherai ? je vous laisse j ai un rendez vous si je cherche un gars qui devellope en solution mail pour programmer emsemble merci a plus
cs_skualpa
Messages postés1Date d'inscriptionjeudi 23 janvier 2003StatutMembreDernière intervention16 mai 2008 16 mai 2008 à 22:29
?a faisait une plombe que je cherchais un tel script, et il fonctionne tr?s, de plus, si comme mentionn? on ne dispose pas de la fonction mail() on a une alternative.
Merci ? son auteur : triumphs.
sectumsempra844
Messages postés6Date d'inscriptionmercredi 19 mars 2008StatutMembreDernière intervention24 avril 2008 19 mars 2008 à 19:46
oubliez mon commentaire précédent, merci !!! ;-) lol
Je n'avais pas vu que cette question avait déjà été posée et résolue !!
Toutes mes excuses !
;-)
sectumsempra844
Messages postés6Date d'inscriptionmercredi 19 mars 2008StatutMembreDernière intervention24 avril 2008 19 mars 2008 à 19:08
Bonjour,
Est-il possible d'envoyer plusieurs pièces jointes avec ce script ?
Je suis en train de créer un formulaire de contact qui doit permettre d'envoyer de 1 à 3 pièces jointes (des images en l'occurrence).
J'ai beau chercher, je ne trouve que des scripts permettant d'envoyer une unique pièce jointe et comme je n'y connais absolument rien en php, j'ignore si je peux modifier cela et si oui, comment.... ;-)
Merci pour vos avis et lumières sur la question !
lcomb
Messages postés11Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention10 mai 2008 25 janv. 2008 à 08:13
Bonjour a tous suite a mes galere je tiens a vous dire que le plus simple c est
1.Mettre le repertoire upload a la racine de son racine chmod 777
2.Mettre"../upload/"dans PHPFormMail.php
3.Ce script marche
4.Des amieliorations sont meme possible a vrai dire
5.J y travaille a plus
henribellot
Messages postés1Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention11 décembre 2007 11 déc. 2007 à 15:59
Bonjour,
De mon côté, j'ai une erreur :
Notice: Undefined variable: email in C:\Inetpub\wwwroot\test\mailing\PHPFormMail.php on line 63
Et de fait, on ne récupère nul part les données envoyées par le formulaire (email, message...)...
C'est normal ou ai-je raté une étape ?...
Merci à vous pour vos réponses !!
Henri
cs_guibon
Messages postés4Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention11 décembre 2007 10 déc. 2007 à 12:36
Bonjour,
Moi je débute, et j'ai le droit à cela
Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 14413 is not allowed to access /home10/eq10603/eq31963 owned by uid 0 in /home10/eq10603/eq31963/html/formmail.php on line 387
Warning: copy(../upload/mots clés.doc): failed to open stream: No such file or directory in /home10/eq10603/eq31963/html/formmail.php on line 387
Class Mail, method attach : file ../upload/mots clés.doc can't be found
Je crois pouvoir chercher longtemps, chemin d'accès, problème coté serveur ?
vraiment là je bloque, je ne vois rien.
merci beaucoup si un coup de main est possible
Cordialement
Eric
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 7 déc. 2007 à 18:19
[En réponse à deezdynasty]
Comme je l'ai dit plusieurs fois, ce script fonctionne. Néanmoins, certaines configurations supplémentaires (fortement dépendante de l'hébergeur dans la plupart des cas) sont inévitables! Par exemple, selon les hébergeurs, les en-tête des mails sont vérifiées; ce qui implique un formalisme imposé par l'hébergeur. On aura alors soin de comprendre que je ne peux pas intégrer à ce code toutes les finesses, nuances et subtilités nécessaires pour le rendre compatible avec l'ensemble des hébergeurs!!!
En somme, je pense qu'il y a TOUJOURS quelque chose à faire. Dans ton cas, deezdynasty, j'essayerai de supprimer toutes les fioritures inutiles de l'en-tête du mail pour ne laisser que ce qui est important (l'émetteur, le destinataire et l'objet du mail). Toutefois, avant d'entreprendre des modifications dans le code, renseigne-toi auprès de ton hébergeur pour savoir si la fonction 'mail' est activée. Les hébergeurs gratuits étant une mine d'or pour les spammeurs, certains ne permettent l'envoi de mail qu'au travers de script cgi qu'ils fournissent.
Voilà. J'espère pouvoir aiguiller ceux qui doutent et ceux qui sont perdus.
Bon code!
deezdynasty
Messages postés1Date d'inscriptionsamedi 7 mai 2005StatutMembreDernière intervention 7 décembre 2007 7 déc. 2007 à 17:04
salut a tous,
mauvaise nouvelle pour moi: je croyais trouver un script qui marche parfaitement, mais a part la redirection vers la page de remerciements, il ne se passe pas grand chose -- pour ainsi dire, RIEN DU TOUT!
Je ne recois pas les mails.
Je pense avoir edite tous les parametres correctement, j'ai cree un fichier upload et un PHPMail_TempUpload en CHMOD 777 a la racine de mon site pourtant.
mon hebergeur est Xdir (gratuit).
Y'a t-il qqchose de plus a faire ou bien ca marchera jamais?!
merci de vos reponses
DOWMEN1
Messages postés2Date d'inscriptionmercredi 28 novembre 2007StatutMembreDernière intervention28 novembre 2007 28 nov. 2007 à 14:37
Mon Probleme c'est comment insérer le code php dans le code pour formmail et où je devrais insérer mon adresse e-mail.
j'ai fait mon premier pas vers création des page web
DOWMEN1
Messages postés2Date d'inscriptionmercredi 28 novembre 2007StatutMembreDernière intervention28 novembre 2007 28 nov. 2007 à 14:27
bjour:
je vien de créer ma site web, et je vien bien de m'aider pour insérer un formulaire permet de m'envoyrer dés ma page web vers ma boite e-mail.des email des visiteurs.
j'ai bein telecharger le fichier zip,mon problème c'est comment faire pour inséer le bon code dans mon crétauer de page web Namo web editor.
j'ai besoin de votre aide SVP.
roseline_ch
Messages postés4Date d'inscriptionmardi 14 mars 2006StatutMembreDernière intervention21 septembre 2007 21 sept. 2007 à 09:16
Merci TriumpHS pour tes commentaires!
En effet, mon ajout était "un petit truc fait dans l'urgence", alors que ce que tu proposes est pro :-)
Et en plus, ma version ne fait que de vérifier si le champs est rempli ou pas, alors que tu fais le contrôle "complet" sur le mail avant de le valider.
Je vais en effet prendre le temps de le lire comme il faut et le tester!
Encore merci
Amicalement
Roseline
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 20 sept. 2007 à 21:58
[En réponse à roseline_ch]
Bien que ton code doive (théoriquement) fonctionner correctement, le fait de tester les champs de ton formulaire après l'avoir posté n'est pas du tout une bonne solution (surtout s'il n'y a pas de stockage persistant prévu). En effet, le code que tu ajoutes n'est malheureusement ni générique, ni optimisé! De plus en imposant un premier POST du formulaire avant de tester les champs, du ralenti le traitement du formulaire et tu alourdi la navigation de l'utilisateur.
Afin de tester le formulaire et de ne pas effectuer de POST dans le cas où les champs ne sont pas correctement renseignés, il te faut coder ta routine de test en JAVASCRIPT; ceci permet d'effectuer les tests côté client (avant le POST) et d'assurer que le traitement du formulaire, côté serveur (après le POST), se fasse toujours sur des champs correctement remplis.
Il faut, de plus, remarquer que coder des 'if' en cascade (comme tu as fait) n'est pas ce qui a de plus esthétique; utilise plutôt un 'switch' (cf.: documentation JAVASCRIPT) qui te permet de rendre ton code plus générique, plus lisible, plus simple à maintenir à jour et plus... ... plus... En somme, dès que tu as plus de deux 'if' à cascader, utilise un 'switch'.
Voici donc un exemple pour (un peu) mieux comprendre:
________________________________Le script de test (JAVASCRIPT)____________________________________
<!--//
/*********************************************************
Required field(s) validation- By NavSurf
Visit NavSurf.com at http://navsurf.com Visit http://www.dynamicdrive.com for this script
---
Modifier par TriumpHS
http://www.devmen.net Date: 20.09.2007 (EU date format)
**********************************************************/
function formCheck(formobj){
// Enter dialog messages
var alertMsgOccurence = "";
var alertMsgMistakeValue = "";
var obj_is_set
for (var i = 0; i < fieldRequired.length; i++){
var obj = formobj.elements[fieldRequired[i]];
var obj_value = fieldRequired[i];
var obj_type = fieldTypeValue[i];
obj_is_set = false;
/*
Contrôle si les champs obligatoires sont renseignés
*/
if (obj){
switch(obj.type){
case "radio":
case "select-one":
if (obj.selectedIndex -1 || obj.options[obj.selectedIndex].text ""){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
case "select-multiple":
if (obj.selectedIndex == -1){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
case "text":
case "textarea":
case "hidden":
if (obj.value "" || obj.value null){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
default:
if (obj.value "" || obj.value null){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
}
/*
Contrôle du format des données saisies.
Le contrôle se fait sur chaque champ.
*/
var s;
var j = 0;
var ValueLength;
if(obj_is_set){
switch(obj_type){
case "eMail":
// on choisit de ne pas tester les domaines...
var testDomaine = false;
var invalidaddress=new Array()
invalidaddress[0]="hotmail"
invalidaddress[1]="rocketmail"
invalidaddress[2]="yahoo"
invalidaddress[3]="zdnetmail"
invalidaddress[4]="caramail"
invalidaddress[5]="excite"
invalidaddress[6]="mailexcite"
//extend or shorten this list if neccessary
var testresults
var invalidcheck=0;
var str=obj.value
var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
if (filter.test(str)){
var tempstring=str.split("@");
tempstring=tempstring[1].split(".");
for (index=0;index 1){
alertMsg = "Le ou les champs suivants n'ont pas été saisi:\n" + alertMsgOccurence;
}
else{
alertMsg = "Tous les champs ont été initialisé...\n";
}
if (alertMsgMistakeValue.length > 0){
alertMsg2 = "Les données suivantes sont incorrectes\n" +
" ou mal saisies:\n" +
alertMsgMistakeValue;
}
Le script de test se trouve dans un fichier .js (par exemple, 'valdate.js') et doit être chargé grâce à la ligne suivante (à placer dans le header de la page):
<SCRIPT language="javascript1.4" type="text/JavaScript" src="/repertoireDeTesScripts/validate.js"></SCRIPT>
Ensuite, il faut initialiser certaines variables du script en déclarant les déclarants (à la fin de la page, après le tag </html>:
<script type="text/javascript" language="JavaScript1.2">
<!-- //
//1) Noms des champs obligatoires
var fieldRequired = Array("e", "msg");
//2) Description des champs (qui apparaitra dans une boîte de dialoque)
var fieldDescription = Array("Votre adresse e-mail", "Le message\n(un e-mail sans message est\nconsidéré comme spam...)");
//3) Type des champs obligatoires
var fieldTypeValue = Array("eMail", "string");
// -->
</script>
Ce script est un peu plus puissant (et complexe!) que celui que tu as écrit... Il a surtout l'avantage d'être (à partir du moment où on a passé 1h à le lire) facilement réutilisable. En effet, comme tu a pu le remarquer, une partie des tests est destinée à des champs qui n'apparaissent pas dans ce formulaire; ceci est dû au fait que j'utilise ce même script pour d'autres formulaires simultanément. Seuls l'initialisation des variables diffère d'un formulaire à un autre.
En résumé, la technique que je te propose, même si elle n'est pas la meilleure (restons modeste), me semble préférable à la tienne.
Je ne cherche pas par là à dénigrer ton travail (je respecte plus que tout tes efforts de recherche), mais je pense que mon point de vue peut t'aider à améliorer ton script de test.
Voilà. Je crois que j'en ai dit suffisamment. J'espère que je n'ai pas dégouté quelqu'un avec tout ça.
Pour ceux qui ont des remarques, n'hésitez pas; j'ai moi aussi des choses à apprendre.
Bon code!
TriumpHS
roseline_ch
Messages postés4Date d'inscriptionmardi 14 mars 2006StatutMembreDernière intervention21 septembre 2007 20 sept. 2007 à 18:15
Bonjour à tous,
J'ai pu installer le tout sans problème, mais il fallait absolument que j'ai un contrôle de certains champs.
Après quelques recherche (merci à ceux qui ont précédemment ouvert la voie!), voici ce que j'ai ajouté (attention: fonctionne en PHP5):
1) au tout début du code, avant le PARAMETRAGE DU SCRIPT
...................................
// CONTROLE DES CHAMPS //
if ($nom "" & $email "")
{
echo("Merci de mettre votre e-mail et votre nom !");
}
elseif ($nom == "")
{
echo("Merci de mettre votre nom !");
}
elseif ($email == "")
{
echo("Merci de mettre votre e-mail !");
}
else{
// FIN CONTROLE DES CHAMPS //
.....................
Remarque: mettez exactement le nom du champ de votre formulaire!
Et si vous voulez ajouter d'autres champs, juste ajouter un "elseif" avant le "else" ;-)
2) Surtout ne pas oublier de mettre à la dernière ligne, avant le "?>"
......
}
......
Et voilà, le tour est joué!
cs_jjdagadir
Messages postés127Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention 6 mars 2009 28 janv. 2007 à 19:34
Bonjour Triumphs,
Merci encore pour ce code super, une petite question, en dehors du MAX_FILE_SIZE, aurais tu un tuyau pour donner une alerte péalable à l'envoi au traitement par le PHPFormMail.php en cas de fichiers trop lourds ? Car il les encaissent, fait son boulot, mais envoit le mail vide sans en avertir l'internaute.
J'en upload 3.
KENAVO
achou_ma
Messages postés2Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention 4 décembre 2006 24 janv. 2007 à 12:58
bonjour
j'ai ,le meme probleme que CBENISTI et LNICOS
je ne reçoit rien sur mon mail juste : Message depuis votre site web:
pas de piece jointe ni meme la valeurs des champs renseignés.
cs_jjdagadir
Messages postés127Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention 6 mars 2009 11 janv. 2007 à 01:48
Bonsoir Sersib,
Comme je le mets plus haut, va récupérer le code complémentaire donné par Triumphs sur la source de LiTtLeBuBu
en réponse à snake0000 :
http://www.phpcs.com/code.aspx?ID=22574 Son code est très bien et fonctionne parfaitement avec 2, 3 et surement plus de fichiers joints, méfie toi de la limite d'upload de ton hébergeur, et prend bien soin de mettre dans le script les noms corrects et tous différents : NomFichier puis NomFichier2 puis NomFichier3 etc...
N'oublie pas de les nommer de cette manière dans ton form également.
Bon courage, çà vaut le coup, le résultat est extra, allez tous ensemble :
MERCI TRIUMPHS
KENAVO
cs_sersib
Messages postés2Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention10 janvier 2007 10 janv. 2007 à 20:05
Bonsoir,
Je suis très satisfait de ce sympatique script, mais malgrès plusieurs essais, je n'arrive pas a envoyer 2 pièces jointes...
Je suis preneur d'un ptit peut plus de details svp..
Merci d'avance.
cs_jjdagadir
Messages postés127Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention 6 mars 2009 5 janv. 2007 à 17:24
Merci beaucoup Triumphs et bien sûr LiTtleBuBu,
Ce script fonctionne aux petits oignons, j'ai récupérer dans les nombreux commentaires le bout de script que tu as fait pour snake0000 afin d'uploader deux fichiers en même temps, cela marche parfaitement bien, j'avais besoin pour ma part de trois fichiers à uploader, c'est parfait aussi.
Tu as raison il y peut y avoir beaucoup de développements pour ce script.
Encore merci et surtout bravo, tu m'enlève une épine du pied..
KENAVO et BLOAVEZ MAD
cs_ricob
Messages postés13Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention 3 novembre 2006 3 nov. 2006 à 17:06
Probleme de l'adresse resolu ! C'etait juste une erreur dans ma modif sinon pour les fonctions a ajouter , ce serait cool .
Merci a tous
cs_ricob
Messages postés13Date d'inscriptionsamedi 11 décembre 2004StatutMembreDernière intervention 3 novembre 2006 3 nov. 2006 à 16:15
Le script fonctionne tres bien mais il y a juste n truc qui denote , ce n'est pas l'adresse de l'expediteur qui s'affiche mais celle de mon compte free ou est stocké le script .
Sinon ajouter une fonction de reponse automatique serait super et aussi indiquer l'adresse ip de l'emetteur
Avis au codeur...
Merci bcp
onError
Messages postés1Date d'inscriptionsamedi 24 janvier 2004StatutMembreDernière intervention26 octobre 2006 26 oct. 2006 à 20:16
Hello,
Merci triumphs (et du coup LiTtleBuBu) pour ce script qui fonctionne et prend en compte les notions d'Header Injections ! 9 out of 10 pour moi !
pepito007
Messages postés2Date d'inscriptionjeudi 14 septembre 2006StatutMembreDernière intervention27 septembre 2006 27 sept. 2006 à 12:14
Bon les gars... ca m'a l'air d'un bordel cette histoire... mais enfin, je ne vais pas etre mauvaise langue, j'ai fini par reussir à faire fonctionner le script d'envoi de mail avec upload de piece jointe, le tout sous serveur Amen... MAIS mais... et c'est là que je casse l'échafaudage... la piece jointe arrive directement dans le corps du message ! (des lignes et des lignes de code s'affichent dans le corps... pour un fichier .jpg par exemple)...
j'ai regardé un peu partout, mais personne ne parle de ca...
à bon entendeur
en tout cas, que d'energie developpée pour ce développement... !
à +++ et merci
younes371
Messages postés502Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention20 mars 2012 16 sept. 2006 à 20:05
Salut,
Je veux juste dire à Mr.: ghostleretour qu'après une petite visite a ton siteWeb http://www.carolobiker.com/ j'ai eu cette erreur :
Warning: unlink(../upload/formulairePHP.txt): Permission denied in d:\www\gberge.be\htdocs\carolobiker\mail\formmail.php on line 275
Alors?
cs_oliander2004
Messages postés1Date d'inscriptionsamedi 17 décembre 2005StatutMembreDernière intervention11 août 2006 11 août 2006 à 23:25
Bonjour tres pratique ce scripte :-) Simplement une question comment peut on rajouter des champs pour joindres des pièces et combien au max ? merci d'avance Julien
cs_piege
Messages postés2Date d'inscriptionvendredi 24 février 2006StatutMembreDernière intervention27 juin 2006 27 juin 2006 à 20:08
salut tout le monde!!
je trouve le script est impecable et marche a merveil!! tout ce que je demande c coment rajouter d autre champ sur le formulaure par exempl nom prenom tel et autre piece join sachan que je suis nule en programation php...
merci d avance
wildover
Messages postés4Date d'inscriptionvendredi 12 mai 2006StatutMembreDernière intervention12 mai 2006 12 mai 2006 à 18:37
la ligne 5
wildover
Messages postés4Date d'inscriptionvendredi 12 mai 2006StatutMembreDernière intervention12 mai 2006 12 mai 2006 à 18:17
Salut j'ai téléchargé ce code car j'ai besoin de pouvoir laisser les visiteur de mon site menvoyer des images. je n'ai rien touché sauf la ligne du phpformmail.php où j'ai mis mon email. je n'ai pas besoin de vérifier la validité des adresses ni de rien d'autres, je souhaites juste que des .txt et.jpg puissent m'être envoyés depuis mon site.j'ai uplodé les trois fichiers sur mon site et quand j'essaie d'ouvrir formMail.htm jobtiens le message suivant 403 forbidden. merci de m'expliquer car tout ce que j'ai fait jusqua présent c de la mise en page et un formulaire d'inscription. Merci d'avance. je répète que g juste besoin de la fonction parcourir et pas des vérifications de mail.
reza999
Messages postés3Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention31 mars 2006 31 mars 2006 à 11:32
salut trumph.. merci d'avoir répondu.. c'est pas une critique sur ton code qui est certainement parfait! ni un jugement de valeur etc.. si tu es debutant alors moi qu'est ce que je suis!!
Bon et je cherche crois pas.. j'ai testé pleins de cods, lu pleins de forums et j'essaie juste maintenant d'economiser le prix d'un bouquin qui m'apportera pas forcement la solution concrete...
Au cas ou voila les messages d'erreurs que je prends apres les modifs à faire decrite ici:
(en esperant que je pollue pas l'endroit!!)
Warning: mail(): Invalid mail. to = [q] in /var/www/sdb/3/3/sp.contact/classMail.php on line 181
Warning: copy(./upload/eBay (1).JPG): failed to open stream: No such file or directory in /var/www/sdb/3/3/sp.contact/PHPFormMail.php on line 102
Class Mail, method attach : file ./upload/eBay (1).JPG can't be found
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 31 mars 2006 à 01:35
[en réponse à reza999 (et à ceux qui ont des difficultés au niveau du français!)]
As-tu pris le soin de lire les commentaires que j'ai écrit (en haut de cette page)?
As-tu pris le soin de lire les commentaires que LiTtleBuBu (http://www.phpcs.com/code.aspx?ID=22574) a écrit (en haut de sa page)?
As-tu pris le soin de jeter un coup d'oeil dans le code?
As-tu pris le soin de te renseigner au moyen de documentations (tellement abondantes sur internet)?
... ...
As-tu pris le soin de comprendre comment fonctionne un ordinateur?
Je crois que oui, puisque tu postes un commentaire très intéressant et qui, de plus, permet de faire évoluer mon code...
Dans le cas contraire, je crois qu'il va falloir mettre certaines choses au point! Reprenons ton poste (que j'ai pris soin de relire plusieurs fois):
1:"
Hello, je crois que je rencontre les meme problemes que la plupart des debutants en php pour la creation de formulaire (sans outlook)... "
Je suis moi-même débutant en PHP; je ne vois tout de même pas pourquoi outlook intervient là-dedans. De plus, d'après les postes, je n'ai pas vu tant de débutant avoir les mêmes problèmes que toi. Mais bon, puisque tu le dis...
2:"
- redirection vers une page html apres validation du form
> je rajoute Header("Location: http://monurl.htm ");
> et je prends un message du genre WARNING: etc..."
Il me semble que j'avais mis assez de commentaire dans le code pour faire cette modification; il faut croire que ce n'est pas le cas.
Sache tout de même que si tu ne me fais pas part du message annoncé par le WARNING, je ne serai pas en mesure de t'aider.
Tu sais, le plus étonnant dans ce problème, c'est que je ne me souviens pas d'une fonction 'Header' qui s'utiliserait comme suit: Header("Location: http://monurl.htm ");
Où as-tu vu qu'il fallait 'pervertir' le code de la sorte?!?!?
Je peux donc affirmer que ton WARNING vient du fait que tu utilises une fonction (qui est destinée, il me semble, à créer l'en-tête d'un e-mail) à mauvaise escient!
3:"
- ajout d'une piece jointe (TRES IMPORTANT, c'est pour un client)
> comprends pas le coup du dossier UPLOAD, quoi dedans? ou? etc..
> comprends pas ce qui faut modifier sur le zip de ce post
> comprends rien!"
Bon ben je vais être franc. JE N'AI PAS ENVIE DE M'ATTARDER A EXPLIQUER CE QU'EST UN REPERTOIRE! Prend un bouquin (genre Informatique pour débutant, version optimisée pour WorkBench)!
Si tu ne comprends pas pourquoi on dont uploader un fichier pour l'envoyer par e-mail, là, je peux t'aider. En fait, le fichier est sur l'ordinateur-client. Ce dernier doit le transmettre (l''upload' à proprement parlé) à un ordinateur-serveur afin de permettre à ce même ordinateur-serveur d'acheminer l'ensemble (e-mail + fichier) au destinataire.
De ce fait, j'ai décidé de créer un REPERTOIRE (nommé 'PHPMail_TempUpload' d'après mon code) sur l'ordinateur-serveur et dans lequel le fichier transmis par l'ordinateur-client y serait placé "temporairement" avant d'être envoyé au destinataire.
4:"
POuvez vous SVP me filer un truc super basique pour que ça marche??"
Ce n'est pas le code qui est complexe! C'est le temps passez à essayer de le comprendre qui est trop court!
Il te faut bien lire les commentaires sur le code écrit par LiTtleBuBu (http://www.phpcs.com/code.aspx?ID=22574). Et si c'est trop compliqué... ...
... ...
(Je ne vois pas d'autre solution. Désolé.)
Bon ben je pense que tu as compris? J'accepte volontier une critique sur mon code, mais il faut que se soit un minimum CONSTRUCTIF!
ABE.
TriumpHS
[PS: Bon code!]
reza999
Messages postés3Date d'inscriptionmercredi 29 mars 2006StatutMembreDernière intervention31 mars 2006 30 mars 2006 à 14:14
Hello, je crois que je rencontre les meme problemes que la plupart des debutants en php pour la creation de formulaire (sans outlook)...
pour les basiques j'y suis parvenu mais GROSSE GALERE pour:
- redirection vers une page html apres validation du form
> je rajoute Header("Location: http://monurl.htm ");
> et je prends un message du genre WARNING: etc...
- ajout d'une piece jointe (TRES IMPORTANT, c'est pour un client)
> comprends pas le coup du dossier UPLOAD, quoi dedans? ou? etc..
> comprends pas ce qui faut modifier sur le zip de ce post
> comprends rien!
POuvez vous SVP me filer un truc super basique pour que ça marche??
par mail sebareza@hotmail.com
pour le reste bonne bourre!
the deb
pogonaworld
Messages postés4Date d'inscriptionmardi 24 janvier 2006StatutMembreDernière intervention26 février 2006 26 févr. 2006 à 18:24
voila l'adresse www.sitesreptiles.fr.tc
sinon voici mon autre site www.universdesreptiles.fr.tc
pogonaworld
Messages postés4Date d'inscriptionmardi 24 janvier 2006StatutMembreDernière intervention26 février 2006 26 févr. 2006 à 12:00
merci je le fait et je met l'adresse ici apré
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 25 févr. 2006 à 20:34
Voila... Email envoyé avec un zip (fichiers nécessaires) ainsi que les explications nécessaires.
Bonne chance
Stéphane
pogonaworld
Messages postés4Date d'inscriptionmardi 24 janvier 2006StatutMembreDernière intervention26 février 2006 25 févr. 2006 à 19:57
message a "triumphs"
je te remercie mais comme tu voit je commence ds le html et le php
je suis désolé si je t'enuis
je voudrait savoir si tu pourait faire un copier coller de ta page 'classMail.php'en m'expliquant ce kil fo ke je change dans mon fichier 'classMail.php' et tu me l'envoi par mail
se serait très gentil de ta par
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 25 févr. 2006 à 14:32
[en réponse à kbstudios]
Je ne sais d'où tu sors cette fonction 'move_uploaded_file'... ... Es-tu sûr que c'est bien de ma source dont tu parles?
Dans tous les cas, ton problème vient du fait que tu fais appel à une fonction qui n'est pas définie...
[en réponse à pogonaworld]
D'abord, il faut lire les commentaires... ... Et quand je dis "les", je parle de TOUS les commentaires et même des premiers!!! Ceci est valable pour toi comme pour tous les autres!
Le commentaire de CLOAD (19/09/2005 10:17:21) auquel je donne une réponse plus que complète ne servirait-il donc à rien?
Afin d'éviter que ce genre de commentaire n'apparaisse encore, je viens de mettre à jour le code du fichier 'classMail.php'... Donc lisez le commentaire de mise à jour pour savoir ce que j'ai changé!
Désolé que ça tombe sur toi, pogonaworld, mais il faut me comprendre... Je ne vais pas le redire 36'000 fois.
Au fait, css c'est 'cascading style sheet'... ... Alors à moins qu'un petit génie me prouve le contraire, je crois ne pas me tromper en disant que ce n'est pas possible de faire de mon code un css... ... ETANT DONNE QUE LE CSS EST POUR LA MISE EN FORME DES DONNEES! C'EST UNE FEUILLE DE STYLE ET NON PAS DU CODE QUI EST EXECUTE!!!!
---
Je suis désolé pour le ton que ça prend.
J'espère que j'ai pu répondre à vos questions et donner une solution à vos problèmes... ... Bon code!
TriumpHS
pogonaworld
Messages postés4Date d'inscriptionmardi 24 janvier 2006StatutMembreDernière intervention26 février 2006 25 févr. 2006 à 13:46
et bien moi ca me met " Fatal error: Cannot redeclare send() in /www/sites/1/ifrance.com/s/i/sitesreptiles/site/classMail.php on line 268 "
et j'ai fait la manipulation du troisième commentaire et ca ne marche toujours pas
je ne sait pas le problème qu'il y a mais bon
si vous pouvez me donner un code source simple se serai plus facile à l'adresse suivante postelalexis@msn.com
PS : serait t-il possible de le faire au format .css
kbstudios
Messages postés1Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention24 février 2006 24 févr. 2006 à 01:10
FICHIER=C:\\Documents and Settings\\STEPHANE\\Mes documents\\ETUDE DE MARCHE V2.doc
TMP=
TYPE=
NAME=
REPERTOIRE=images/
DESTINATION=images/
TEXTE=
Fatal error: Call to unsupported or undefined function move_uploaded_file() in your script on line 58
J'ai ce message d'erreur quelqu'un peut-il m'aider ?
merci
informatique_04
Messages postés70Date d'inscriptionlundi 1 août 2005StatutMembreDernière intervention17 mars 2010 31 janv. 2006 à 22:11
pour ton quistion poufouille la reponse il sur cette page lir bien avan de poser
la quistion
poufouille
Messages postés5Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention21 novembre 2007 29 déc. 2005 à 16:03
bonjour à tous,
moi j'ai ce message d'erreur :
Fatal error: Cannot redeclare send() in /var/www/free.fr/e/e/clemwebsite/classMail.php on line 268
cela correspond à la fonction send de la classmail...
je ne comprends pas trop ?
Merci de votre aide
huit13
Messages postés6Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention26 octobre 2005 26 oct. 2005 à 19:55
Bonsoir Triumphs
J'ai lu les commentaires et le code, ce qui m'a permis de voir que ton répertoire upload s'appelait en faite PHPMail_TempUpload. J'ai bien positionné ce répertoire à la racine du site et il a bien un chmod de 777.
Mon php n'est pas débutant mais pas non plus initié. Je n'ose pas trop faire de modification dedans avant de savoir vraiment ce qui se passe car par contre mon anglais est très mauvais.
J'ai l'impression qu'il ne trouve pas le dossier temporaire et qu'il n'est pas autorisé à écrire dedans, n'est-ce pas ?
Je vais essayer d'indiquer un chemin absolu.
Je vous tiens au courant
a+
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 26 oct. 2005 à 14:47
Bonjoour,
Je vois qu'il y a encore des problèmes avec ce script. Avant de continuer, je tiens à vous dire que je viens, une nouvelle fois, de le tester et, malheureusement pour vous, il fonctionne chez moi; ce qui implique que je ne vais pas le modifier dans les jours à venir.
Toutefois, en ce qui concerne le problème (que je n'ai pas!) avec les pièces jointes, il faut que je vous présente mes excuses. Je n'ai pas mentionné que, dans mon code, le répertoire 'upload' de LiTtleBuBu se nomme (pompeusement) 'PHPMail_TempUpload'.
En ce qui concerne le 'open_basedir restriction in effect', vérifiez que le répertoire temporaire ('PHPMail_TempUpload' dans mon cas) ne soit pas contenu dans un parent pour lequel vous n'avez pas changé les attributs. Un bon moyen d'éviter cela est de mettre le répertoire temporaire à la racine du site; dans ce cas, dans le code, les chemins relatifs au répertoire peuvent être modifiés par un chemin absolu. Ce qui est plus pratique...
En espérant que ceci a pu vous aider; bon code!
TriumpHS
PS: lire les commentaires c'est très bien, mais il faut aussi lire le code pour en comprendre les subtilités! Trois lignes de code remplacent facilement une page d'explications...
huit13
Messages postés6Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention26 octobre 2005 26 oct. 2005 à 14:19
Bonjour Ghostleretour,
Est-ce que cela s'applique également au script de triumphs ?
a+
Myriam
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 25 oct. 2005 à 23:59
Après vérification, j'utilise bien un répertoire nommé upload, et voici le commentaire du script de littlebubu :
Formail +
//Utilise une partie la classe Mail écrite par Léo West
Ce script met un formulaire sur son site qui permet aux visiteurs d'envoyer un email au webmaster
via un formulaire.
La nouveauté est que ce script permet au visiteur de mettre un fichier joint avec son message.
Le fichier joint est uploadé sur le serveur puis détruit une fois le mail envoyé.
INSTALLATION
Ce script ne fonctionne pas sous Online ou Nexen (et ne fonctionnera d'ailleurs jamais sur ces serveurs. J'ai
tout essayé et j'ai contacté le support technique, ils ont tellement bien modifié leur fonction email()
qu'il est impossible de l'utiliser avec ce script)
Créer un répertoire et uploader les deux fichiers dedans
Dans le fichier formail.php remplacer dans la ligne $dest="..." l'adresse email par la votre
Créer un répertoire "upload" au même niveau que le répertoire que vous avez créé (pas dedans, à côté :-) )
Et voila...
Stéphane
huit13
Messages postés6Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention26 octobre 2005 25 oct. 2005 à 23:07
Non c'est bien cela :
// Attachement du fichier:_
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)){
// copie temporaire du fichier joint.
copy($NomFichier, "../PHPMail_TempUpload/$name");
}
$m->Attach( "../PHPMail_TempUpload/$name", "application/octet-stream" );
}
// Envoi du mail:_
$m->Send();
// Destruction de la copie temporaire de la pièce jointe:_
if ("$NomFichier"!="") {
Unlink("../PHPMail_TempUpload/$name");
huit13
Messages postés6Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention26 octobre 2005 25 oct. 2005 à 22:55
Sur la version de littlebubu c'était upload mais sur celle de triumphs c'est celui la mais je n'en mettra pas ma main à couper. Je vérifie...
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 25 oct. 2005 à 22:35
Euhhh, oui, je crois que j'ai une idée lol
Regarde dans le code convenablement, mais je pense que le nom du répertoire prévu est "upload" à moins que tu l'ais changé ?
Stéphane
huit13
Messages postés6Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention26 octobre 2005 25 oct. 2005 à 22:32
Bonsoir Ghostleretour,
J'ai bien mis le chmod du répertoire PHPMail_tempUpload a 777
Mon fichier joint ne faisait que 27ko.
as-tu une autre idée ?
a l'avance merci
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 25 oct. 2005 à 22:04
As tu bien modifié le CHMOD du dossier temporaire pour ta piece jointe ?
Stéphane
huit13
Messages postés6Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention26 octobre 2005 25 oct. 2005 à 19:53
Bonjour,
J'ai testé les deux codes, celui de littlebubu et celui-ci. J'ai effectué les corrections comme décrits dans les commentaires, mais j'ai toujours le message d'erreur suivant :
+OK Hello there.
Warning: copy(): open_basedir restriction in effect. File(../PHPMail_TempUpload/code-projet-css.doc) is not within the allowed path(s): (/usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs:/tmp) in /usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs/PHPFormMail.php on line 102
Warning: copy(../PHPMail_TempUpload/code-projet-css.doc): failed to open stream: Operation not permitted in /usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs/PHPFormMail.php on line 102
Class Mail, method attach : file ../PHPMail_TempUpload/code-projet-css.doc can't be found
Je ne reçois pas mon message avec la pièce-jointe, par contre, je reçois bien l'email m'informant que : Votre e-mail, destiné à untel, a été envoyé!
Pouvez-vous m'aider
à l'avance merci
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 4 oct. 2005 à 17:53
lnicos
Messages postés67Date d'inscriptionlundi 4 mars 2002StatutMembreDernière intervention 4 octobre 2005 4 oct. 2005 à 09:31
moi, j'ai également le même problème...
d'ou ça peut venir??
cbenisti
Messages postés2Date d'inscriptionmardi 27 septembre 2005StatutMembreDernière intervention30 septembre 2005 30 sept. 2005 à 15:21
en ce qui me concerne je ne reçoit rien sur mon mail juste ca : Message depuis votre site web:
pas de piece jointe ni meme la valeurs des champs renseignés
pouvez vous m'éclairer la dessus?
ghostleretour
Messages postés20Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention12 août 2009 20 sept. 2005 à 19:00
merci pour ce code revu...
Il est utilisé sur un des sites que j'ai conçu http://www.carolobiker.com (partie contacts) depuis peu. Trouvé grace a LiTtleBuBu et modifié pour qu'il fonctionne correctement grace a vous tous.
Je l'ai moi meme modifié pour des pieces jointes allant jusqu'a 1 méga !
Merci
Stéphane
triumphs
Messages postés19Date d'inscriptiondimanche 30 mai 2004StatutMembreDernière intervention30 septembre 20133 19 sept. 2005 à 11:22
Pour répondre à CLOAD:
Les deux fonctions 'send' sont utilisées dans des contextes différents; tu peux donc modifier le nom d'une d'entr'elles sans que cela ne gène trop l'exécution.
Comme la fonction send déclarée à la ligne 29 n'est utilisée que de façon interne, je te conseille de modifier cette dernière. Tu peux lui donner le nom '_send' (avec l'underscore!) et, dans la fonction 'checkExp' (ligne 131), tu changes tous les appels à 'send(...)' par des appels à '_send(...)'.
De toute façon, une fois que tu liras le code de la fonction checkExp, tu verras que la fonction 'send($data)' n'est, en fait, plus utilisée; en ce sens que les appels n'apparaissent que dans des instructions commentées. La raison est donnée dans les commentaires!
De plus, je sais que certains serveur n'admettens pas certaines commandes; il devient donc difficile d'utiliser cette fonction si l'on veut que le code fonctionne correctement (indépendemment du serveur que l'on appelle)...
Voilà! Bon code!
PS: j'ai fiat les mêmes changements, suite à ton poste, et il n'y a pas de problème. Amuses-toi bien!
cload
Messages postés8Date d'inscriptionjeudi 29 janvier 2004StatutMembreDernière intervention19 février 2008 19 sept. 2005 à 10:17
Fatal error: Cannot redeclare Mail::Send() in /file/home/www/temp/classMail.php on line 268
Il est vrai que j'ai déjà "function send($data)" en ligne 29. Est-ce mon insensibilité à la casse ? (j'avoue, je ne sais pas me sensibiliser :) Comment faire svp ?
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 12 sept. 2005 à 22:41
Y'a un peu trop de "" à mon gout, surtout au niveau des variables.
On ne fait plus : echo "$reponse"; mais directement echo $reponse;
Bon, ce sont de petites choses... mais rien de trop grâve non plus.
10 févr. 2011 à 19:33
BS
Je viens de mettre en ligne sur mon serveur le formulaire en question et voici les erreurs signalés.
-------------------------oooooo-----------------------
+OK POP3 ready <1513414009.1297360860@pop1-g25.free.fr>
Warning: copy(../PHPMail_TempUpload/Image-38.jpg) [function.copy]: failed to open stream: No such file or directory in /public_html/Formu_piece_jointe/PHPFormMail.php on line 102
Class Mail, method attach : file ../PHPMail_TempUpload/Image-38.jpg can't be found
--------------------------oooooo-------------------------
Donc si quelqu'un veux bien me donner un coup de main pour résoudre le problème, moi je me perds pas mal dans les entrailles du code « php »
Un grand merci
Cordialement
Perez
20 avril 2010 à 16:27
je suis un peu nul en codes sources...
Pour la version ".htm" où faut-il mettre l'adresse email du destinataire du formulaire ?
23 avril 2009 à 11:25
je ne connais pas grand chose à PHP et au fonctionnements SMTP ... je suis très débutant.
J'essaie de configurer le script pour fonctionner sous hébergement gratuit iFrance + envoi avec SMTP GMAIL, mais vraiment sans succès ; je n'arrive même pas à décomposer pour débugger le fonctionnement.
Bref un vrai nul !
Quelqu'un peut-il m'aider ?
Merci d'avance
2 févr. 2009 à 12:14
J'aimerais demande un aide s'il vous plait
je suis un débutant du code, membre d'un groupe de bénévole en Afrique on viens de créer notre site internet d'association et on aimera qu'on puisse permettre a nos visiteur d'envoyer un pièces joints directement sur nos formulaire.
si il y a une personne de bonne volonte veuillez s'il vous nous aide. notre e-mail: info@horinal.com et notre site internet www.horinal.com details sur le formulaire
Nom:
Prénom:
Ville:
Pays:
Tél:
Sujet:
Message:
et Pièeces Joints:
merci de votre aide veuillez directement nous envoyer le code sur info@horinal.com / info@groupthefuture.com ou horinal@live.com
merci
5 juil. 2008 à 18:36
je me suis fais un formulaire en local qui renvois sur un phpform sur mon site en post ca marche tout bien sauf le fichier joint je crois c est par ce que je suis en local et je post sur mon site est ce que c est ca ? C'est de la logique pure .Comment faire pour develloper en local avec une connection internet ,est ce en changeant l adresse de l uplaod ca marcherai ? je vous laisse j ai un rendez vous si je cherche un gars qui devellope en solution mail pour programmer emsemble merci a plus
16 mai 2008 à 22:29
Merci ? son auteur : triumphs.
19 mars 2008 à 19:46
Je n'avais pas vu que cette question avait déjà été posée et résolue !!
Toutes mes excuses !
;-)
19 mars 2008 à 19:08
Est-il possible d'envoyer plusieurs pièces jointes avec ce script ?
Je suis en train de créer un formulaire de contact qui doit permettre d'envoyer de 1 à 3 pièces jointes (des images en l'occurrence).
J'ai beau chercher, je ne trouve que des scripts permettant d'envoyer une unique pièce jointe et comme je n'y connais absolument rien en php, j'ignore si je peux modifier cela et si oui, comment.... ;-)
Merci pour vos avis et lumières sur la question !
25 janv. 2008 à 08:13
1.Mettre le repertoire upload a la racine de son racine chmod 777
2.Mettre"../upload/"dans PHPFormMail.php
3.Ce script marche
4.Des amieliorations sont meme possible a vrai dire
5.J y travaille a plus
11 déc. 2007 à 15:59
De mon côté, j'ai une erreur :
Notice: Undefined variable: email in C:\Inetpub\wwwroot\test\mailing\PHPFormMail.php on line 63
Et de fait, on ne récupère nul part les données envoyées par le formulaire (email, message...)...
C'est normal ou ai-je raté une étape ?...
Merci à vous pour vos réponses !!
Henri
10 déc. 2007 à 12:36
Moi je débute, et j'ai le droit à cela
Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 14413 is not allowed to access /home10/eq10603/eq31963 owned by uid 0 in /home10/eq10603/eq31963/html/formmail.php on line 387
Warning: copy(../upload/mots clés.doc): failed to open stream: No such file or directory in /home10/eq10603/eq31963/html/formmail.php on line 387
Class Mail, method attach : file ../upload/mots clés.doc can't be found
Je crois pouvoir chercher longtemps, chemin d'accès, problème coté serveur ?
vraiment là je bloque, je ne vois rien.
merci beaucoup si un coup de main est possible
Cordialement
Eric
7 déc. 2007 à 18:19
Comme je l'ai dit plusieurs fois, ce script fonctionne. Néanmoins, certaines configurations supplémentaires (fortement dépendante de l'hébergeur dans la plupart des cas) sont inévitables! Par exemple, selon les hébergeurs, les en-tête des mails sont vérifiées; ce qui implique un formalisme imposé par l'hébergeur. On aura alors soin de comprendre que je ne peux pas intégrer à ce code toutes les finesses, nuances et subtilités nécessaires pour le rendre compatible avec l'ensemble des hébergeurs!!!
En somme, je pense qu'il y a TOUJOURS quelque chose à faire. Dans ton cas, deezdynasty, j'essayerai de supprimer toutes les fioritures inutiles de l'en-tête du mail pour ne laisser que ce qui est important (l'émetteur, le destinataire et l'objet du mail). Toutefois, avant d'entreprendre des modifications dans le code, renseigne-toi auprès de ton hébergeur pour savoir si la fonction 'mail' est activée. Les hébergeurs gratuits étant une mine d'or pour les spammeurs, certains ne permettent l'envoi de mail qu'au travers de script cgi qu'ils fournissent.
Voilà. J'espère pouvoir aiguiller ceux qui doutent et ceux qui sont perdus.
Bon code!
7 déc. 2007 à 17:04
mauvaise nouvelle pour moi: je croyais trouver un script qui marche parfaitement, mais a part la redirection vers la page de remerciements, il ne se passe pas grand chose -- pour ainsi dire, RIEN DU TOUT!
Je ne recois pas les mails.
Je pense avoir edite tous les parametres correctement, j'ai cree un fichier upload et un PHPMail_TempUpload en CHMOD 777 a la racine de mon site pourtant.
mon hebergeur est Xdir (gratuit).
Y'a t-il qqchose de plus a faire ou bien ca marchera jamais?!
merci de vos reponses
28 nov. 2007 à 14:37
j'ai fait mon premier pas vers création des page web
28 nov. 2007 à 14:27
je vien de créer ma site web, et je vien bien de m'aider pour insérer un formulaire permet de m'envoyrer dés ma page web vers ma boite e-mail.des email des visiteurs.
j'ai bein telecharger le fichier zip,mon problème c'est comment faire pour inséer le bon code dans mon crétauer de page web Namo web editor.
j'ai besoin de votre aide SVP.
21 sept. 2007 à 09:16
En effet, mon ajout était "un petit truc fait dans l'urgence", alors que ce que tu proposes est pro :-)
Et en plus, ma version ne fait que de vérifier si le champs est rempli ou pas, alors que tu fais le contrôle "complet" sur le mail avant de le valider.
Je vais en effet prendre le temps de le lire comme il faut et le tester!
Encore merci
Amicalement
Roseline
20 sept. 2007 à 21:58
Bien que ton code doive (théoriquement) fonctionner correctement, le fait de tester les champs de ton formulaire après l'avoir posté n'est pas du tout une bonne solution (surtout s'il n'y a pas de stockage persistant prévu). En effet, le code que tu ajoutes n'est malheureusement ni générique, ni optimisé! De plus en imposant un premier POST du formulaire avant de tester les champs, du ralenti le traitement du formulaire et tu alourdi la navigation de l'utilisateur.
Afin de tester le formulaire et de ne pas effectuer de POST dans le cas où les champs ne sont pas correctement renseignés, il te faut coder ta routine de test en JAVASCRIPT; ceci permet d'effectuer les tests côté client (avant le POST) et d'assurer que le traitement du formulaire, côté serveur (après le POST), se fasse toujours sur des champs correctement remplis.
Il faut, de plus, remarquer que coder des 'if' en cascade (comme tu as fait) n'est pas ce qui a de plus esthétique; utilise plutôt un 'switch' (cf.: documentation JAVASCRIPT) qui te permet de rendre ton code plus générique, plus lisible, plus simple à maintenir à jour et plus... ... plus... En somme, dès que tu as plus de deux 'if' à cascader, utilise un 'switch'.
Voici donc un exemple pour (un peu) mieux comprendre:
_____________________________________Le code du formulaire________________________________________
<form name="formMail" id="form" vname="formMail" action="/PHP/PHPFormMail.php" onSubmit="return(formCheck(this));" method="post" enctype="multipart/form-data">
Votre adresse e-mail,
,
----
Sujet,
,
----
Message,
<textarea rows="15" name="msg" cols="45"></textarea>,
----
</form>
________________________________Le script de test (JAVASCRIPT)____________________________________
<!--//
/*********************************************************
Required field(s) validation- By NavSurf
Visit NavSurf.com at http://navsurf.com
Visit http://www.dynamicdrive.com for this script
---
Modifier par TriumpHS
http://www.devmen.net
Date: 20.09.2007 (EU date format)
**********************************************************/
function formCheck(formobj){
// Enter dialog messages
var alertMsgOccurence = "";
var alertMsgMistakeValue = "";
var obj_is_set
for (var i = 0; i < fieldRequired.length; i++){
var obj = formobj.elements[fieldRequired[i]];
var obj_value = fieldRequired[i];
var obj_type = fieldTypeValue[i];
obj_is_set = false;
/*
Contrôle si les champs obligatoires sont renseignés
*/
if (obj){
switch(obj.type){
case "radio":
case "select-one":
if (obj.selectedIndex -1 || obj.options[obj.selectedIndex].text ""){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
case "select-multiple":
if (obj.selectedIndex == -1){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
case "text":
case "textarea":
case "hidden":
if (obj.value "" || obj.value null){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
break;
default:
if (obj.value "" || obj.value null){
alertMsgOccurence += " - " + fieldDescription[i] + "\n";
}
else{
obj_is_set = true
}
}
/*
Contrôle du format des données saisies.
Le contrôle se fait sur chaque champ.
*/
var s;
var j = 0;
var ValueLength;
if(obj_is_set){
switch(obj_type){
case "eMail":
// on choisit de ne pas tester les domaines...
var testDomaine = false;
var invalidaddress=new Array()
invalidaddress[0]="hotmail"
invalidaddress[1]="rocketmail"
invalidaddress[2]="yahoo"
invalidaddress[3]="zdnetmail"
invalidaddress[4]="caramail"
invalidaddress[5]="excite"
invalidaddress[6]="mailexcite"
//extend or shorten this list if neccessary
var testresults
var invalidcheck=0;
var str=obj.value
var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
if (filter.test(str)){
var tempstring=str.split("@");
tempstring=tempstring[1].split(".");
for (index=0;index 1){
alertMsg = "Le ou les champs suivants n'ont pas été saisi:\n" + alertMsgOccurence;
}
else{
alertMsg = "Tous les champs ont été initialisé...\n";
}
if (alertMsgMistakeValue.length > 0){
alertMsg2 = "Les données suivantes sont incorrectes\n" +
" ou mal saisies:\n" +
alertMsgMistakeValue;
}
if (alertMsgOccurence.length 0 && alertMsgMistakeValue.length 0){
return true;
}
else{
alert(alertMsg + "\n" +alertMsg2);
return false;
}
}
//-->
Le script de test se trouve dans un fichier .js (par exemple, 'valdate.js') et doit être chargé grâce à la ligne suivante (à placer dans le header de la page):
<SCRIPT language="javascript1.4" type="text/JavaScript" src="/repertoireDeTesScripts/validate.js"></SCRIPT>
Ensuite, il faut initialiser certaines variables du script en déclarant les déclarants (à la fin de la page, après le tag </html>:
<script type="text/javascript" language="JavaScript1.2">
<!-- //
//1) Noms des champs obligatoires
var fieldRequired = Array("e", "msg");
//2) Description des champs (qui apparaitra dans une boîte de dialoque)
var fieldDescription = Array("Votre adresse e-mail", "Le message\n(un e-mail sans message est\nconsidéré comme spam...)");
//3) Type des champs obligatoires
var fieldTypeValue = Array("eMail", "string");
// -->
</script>
Ce script est un peu plus puissant (et complexe!) que celui que tu as écrit... Il a surtout l'avantage d'être (à partir du moment où on a passé 1h à le lire) facilement réutilisable. En effet, comme tu a pu le remarquer, une partie des tests est destinée à des champs qui n'apparaissent pas dans ce formulaire; ceci est dû au fait que j'utilise ce même script pour d'autres formulaires simultanément. Seuls l'initialisation des variables diffère d'un formulaire à un autre.
En résumé, la technique que je te propose, même si elle n'est pas la meilleure (restons modeste), me semble préférable à la tienne.
Je ne cherche pas par là à dénigrer ton travail (je respecte plus que tout tes efforts de recherche), mais je pense que mon point de vue peut t'aider à améliorer ton script de test.
Voilà. Je crois que j'en ai dit suffisamment. J'espère que je n'ai pas dégouté quelqu'un avec tout ça.
Pour ceux qui ont des remarques, n'hésitez pas; j'ai moi aussi des choses à apprendre.
Bon code!
TriumpHS
20 sept. 2007 à 18:15
J'ai pu installer le tout sans problème, mais il fallait absolument que j'ai un contrôle de certains champs.
Après quelques recherche (merci à ceux qui ont précédemment ouvert la voie!), voici ce que j'ai ajouté (attention: fonctionne en PHP5):
1) au tout début du code, avant le PARAMETRAGE DU SCRIPT
...................................
// CONTROLE DES CHAMPS //
if ($nom "" & $email "")
{
echo("Merci de mettre votre e-mail et votre nom !");
}
elseif ($nom == "")
{
echo("Merci de mettre votre nom !");
}
elseif ($email == "")
{
echo("Merci de mettre votre e-mail !");
}
else{
// FIN CONTROLE DES CHAMPS //
.....................
Remarque: mettez exactement le nom du champ de votre formulaire!
Et si vous voulez ajouter d'autres champs, juste ajouter un "elseif" avant le "else" ;-)
2) Surtout ne pas oublier de mettre à la dernière ligne, avant le "?>"
......
}
......
Et voilà, le tour est joué!
28 janv. 2007 à 19:34
Merci encore pour ce code super, une petite question, en dehors du MAX_FILE_SIZE, aurais tu un tuyau pour donner une alerte péalable à l'envoi au traitement par le PHPFormMail.php en cas de fichiers trop lourds ? Car il les encaissent, fait son boulot, mais envoit le mail vide sans en avertir l'internaute.
J'en upload 3.
KENAVO
24 janv. 2007 à 12:58
j'ai ,le meme probleme que CBENISTI et LNICOS
je ne reçoit rien sur mon mail juste : Message depuis votre site web:
pas de piece jointe ni meme la valeurs des champs renseignés.
11 janv. 2007 à 01:48
Comme je le mets plus haut, va récupérer le code complémentaire donné par Triumphs sur la source de LiTtLeBuBu
en réponse à snake0000 :
http://www.phpcs.com/code.aspx?ID=22574
Son code est très bien et fonctionne parfaitement avec 2, 3 et surement plus de fichiers joints, méfie toi de la limite d'upload de ton hébergeur, et prend bien soin de mettre dans le script les noms corrects et tous différents : NomFichier puis NomFichier2 puis NomFichier3 etc...
N'oublie pas de les nommer de cette manière dans ton form également.
Bon courage, çà vaut le coup, le résultat est extra, allez tous ensemble :
MERCI TRIUMPHS
KENAVO
10 janv. 2007 à 20:05
Je suis très satisfait de ce sympatique script, mais malgrès plusieurs essais, je n'arrive pas a envoyer 2 pièces jointes...
Je suis preneur d'un ptit peut plus de details svp..
Merci d'avance.
5 janv. 2007 à 17:24
Ce script fonctionne aux petits oignons, j'ai récupérer dans les nombreux commentaires le bout de script que tu as fait pour snake0000 afin d'uploader deux fichiers en même temps, cela marche parfaitement bien, j'avais besoin pour ma part de trois fichiers à uploader, c'est parfait aussi.
Tu as raison il y peut y avoir beaucoup de développements pour ce script.
Encore merci et surtout bravo, tu m'enlève une épine du pied..
KENAVO et BLOAVEZ MAD
3 nov. 2006 à 17:06
Merci a tous
3 nov. 2006 à 16:15
Sinon ajouter une fonction de reponse automatique serait super et aussi indiquer l'adresse ip de l'emetteur
Avis au codeur...
Merci bcp
26 oct. 2006 à 20:16
Merci triumphs (et du coup LiTtleBuBu) pour ce script qui fonctionne et prend en compte les notions d'Header Injections ! 9 out of 10 pour moi !
27 sept. 2006 à 12:14
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
16 sept. 2006 à 20:05
Je veux juste dire à Mr.: ghostleretour qu'après une petite visite a ton siteWeb http://www.carolobiker.com/
j'ai eu cette erreur :
Warning: unlink(../upload/formulairePHP.txt): Permission denied in d:\www\gberge.be\htdocs\carolobiker\mail\formmail.php on line 275
Alors?
11 août 2006 à 23:25
27 juin 2006 à 20:08
je trouve le script est impecable et marche a merveil!! tout ce que je demande c coment rajouter d autre champ sur le formulaure par exempl nom prenom tel et autre piece join sachan que je suis nule en programation php...
merci d avance
12 mai 2006 à 18:37
12 mai 2006 à 18:17
31 mars 2006 à 11:32
Bon et je cherche crois pas.. j'ai testé pleins de cods, lu pleins de forums et j'essaie juste maintenant d'economiser le prix d'un bouquin qui m'apportera pas forcement la solution concrete...
Au cas ou voila les messages d'erreurs que je prends apres les modifs à faire decrite ici:
(en esperant que je pollue pas l'endroit!!)
...............................................................................................
Warning: mail(): Invalid mail. to = [q] in /var/www/sdb/3/3/sp.contact/classMail.php on line 181
Warning: copy(./upload/eBay (1).JPG): failed to open stream: No such file or directory in /var/www/sdb/3/3/sp.contact/PHPFormMail.php on line 102
Class Mail, method attach : file ./upload/eBay (1).JPG can't be found
................................................................................................
j'ai créé un file upload vide au niveau des files phpmail et classmail et mon bout de cod phpmail est:
................................................................................................
// Attachement du fichier:_
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)){
// copie temporaire du fichier joint.
copy($NomFichier, "./upload/$name");
}
$m->Attach( "./upload/$name", "application/octet-stream" );
}
// Envoi du mail:_
$m->Send();
// Destruction de la copie temporaire de la pièce jointe:_
if ("$NomFichier"!="") {
Unlink("./upload/$name");
...............................................................................................
et voila la ligne 181 de classmail
mail($adresse, $ok_sbj, $ok_msg, $headers);
...............................................................................................
Wats the matter doc?
31 mars 2006 à 01:35
As-tu pris le soin de lire les commentaires que j'ai écrit (en haut de cette page)?
As-tu pris le soin de lire les commentaires que LiTtleBuBu (http://www.phpcs.com/code.aspx?ID=22574) a écrit (en haut de sa page)?
As-tu pris le soin de jeter un coup d'oeil dans le code?
As-tu pris le soin de te renseigner au moyen de documentations (tellement abondantes sur internet)?
... ...
As-tu pris le soin de comprendre comment fonctionne un ordinateur?
Je crois que oui, puisque tu postes un commentaire très intéressant et qui, de plus, permet de faire évoluer mon code...
Dans le cas contraire, je crois qu'il va falloir mettre certaines choses au point! Reprenons ton poste (que j'ai pris soin de relire plusieurs fois):
1:"
Hello, je crois que je rencontre les meme problemes que la plupart des debutants en php pour la creation de formulaire (sans outlook)... "
Je suis moi-même débutant en PHP; je ne vois tout de même pas pourquoi outlook intervient là-dedans. De plus, d'après les postes, je n'ai pas vu tant de débutant avoir les mêmes problèmes que toi. Mais bon, puisque tu le dis...
2:"
- redirection vers une page html apres validation du form
> je rajoute Header("Location: http://monurl.htm ");
> et je prends un message du genre WARNING: etc..."
Il me semble que j'avais mis assez de commentaire dans le code pour faire cette modification; il faut croire que ce n'est pas le cas.
Sache tout de même que si tu ne me fais pas part du message annoncé par le WARNING, je ne serai pas en mesure de t'aider.
Tu sais, le plus étonnant dans ce problème, c'est que je ne me souviens pas d'une fonction 'Header' qui s'utiliserait comme suit: Header("Location: http://monurl.htm ");
Où as-tu vu qu'il fallait 'pervertir' le code de la sorte?!?!?
Je peux donc affirmer que ton WARNING vient du fait que tu utilises une fonction (qui est destinée, il me semble, à créer l'en-tête d'un e-mail) à mauvaise escient!
3:"
- ajout d'une piece jointe (TRES IMPORTANT, c'est pour un client)
> comprends pas le coup du dossier UPLOAD, quoi dedans? ou? etc..
> comprends pas ce qui faut modifier sur le zip de ce post
> comprends rien!"
Bon ben je vais être franc. JE N'AI PAS ENVIE DE M'ATTARDER A EXPLIQUER CE QU'EST UN REPERTOIRE! Prend un bouquin (genre Informatique pour débutant, version optimisée pour WorkBench)!
Si tu ne comprends pas pourquoi on dont uploader un fichier pour l'envoyer par e-mail, là, je peux t'aider. En fait, le fichier est sur l'ordinateur-client. Ce dernier doit le transmettre (l''upload' à proprement parlé) à un ordinateur-serveur afin de permettre à ce même ordinateur-serveur d'acheminer l'ensemble (e-mail + fichier) au destinataire.
De ce fait, j'ai décidé de créer un REPERTOIRE (nommé 'PHPMail_TempUpload' d'après mon code) sur l'ordinateur-serveur et dans lequel le fichier transmis par l'ordinateur-client y serait placé "temporairement" avant d'être envoyé au destinataire.
4:"
POuvez vous SVP me filer un truc super basique pour que ça marche??"
Ce n'est pas le code qui est complexe! C'est le temps passez à essayer de le comprendre qui est trop court!
Il te faut bien lire les commentaires sur le code écrit par LiTtleBuBu (http://www.phpcs.com/code.aspx?ID=22574). Et si c'est trop compliqué... ...
... ...
(Je ne vois pas d'autre solution. Désolé.)
Bon ben je pense que tu as compris? J'accepte volontier une critique sur mon code, mais il faut que se soit un minimum CONSTRUCTIF!
ABE.
TriumpHS
[PS: Bon code!]
30 mars 2006 à 14:14
pour les basiques j'y suis parvenu mais GROSSE GALERE pour:
- redirection vers une page html apres validation du form
> je rajoute Header("Location: http://monurl.htm ");
> et je prends un message du genre WARNING: etc...
- ajout d'une piece jointe (TRES IMPORTANT, c'est pour un client)
> comprends pas le coup du dossier UPLOAD, quoi dedans? ou? etc..
> comprends pas ce qui faut modifier sur le zip de ce post
> comprends rien!
POuvez vous SVP me filer un truc super basique pour que ça marche??
par mail sebareza@hotmail.com
pour le reste bonne bourre!
the deb
26 févr. 2006 à 18:24
sinon voici mon autre site www.universdesreptiles.fr.tc
26 févr. 2006 à 12:00
25 févr. 2006 à 20:34
Bonne chance
Stéphane
25 févr. 2006 à 19:57
je te remercie mais comme tu voit je commence ds le html et le php
je suis désolé si je t'enuis
je voudrait savoir si tu pourait faire un copier coller de ta page 'classMail.php'en m'expliquant ce kil fo ke je change dans mon fichier 'classMail.php' et tu me l'envoi par mail
se serait très gentil de ta par
25 févr. 2006 à 14:32
Je ne sais d'où tu sors cette fonction 'move_uploaded_file'... ... Es-tu sûr que c'est bien de ma source dont tu parles?
Dans tous les cas, ton problème vient du fait que tu fais appel à une fonction qui n'est pas définie...
[en réponse à pogonaworld]
D'abord, il faut lire les commentaires... ... Et quand je dis "les", je parle de TOUS les commentaires et même des premiers!!! Ceci est valable pour toi comme pour tous les autres!
Le commentaire de CLOAD (19/09/2005 10:17:21) auquel je donne une réponse plus que complète ne servirait-il donc à rien?
Afin d'éviter que ce genre de commentaire n'apparaisse encore, je viens de mettre à jour le code du fichier 'classMail.php'... Donc lisez le commentaire de mise à jour pour savoir ce que j'ai changé!
Désolé que ça tombe sur toi, pogonaworld, mais il faut me comprendre... Je ne vais pas le redire 36'000 fois.
Au fait, css c'est 'cascading style sheet'... ... Alors à moins qu'un petit génie me prouve le contraire, je crois ne pas me tromper en disant que ce n'est pas possible de faire de mon code un css... ... ETANT DONNE QUE LE CSS EST POUR LA MISE EN FORME DES DONNEES! C'EST UNE FEUILLE DE STYLE ET NON PAS DU CODE QUI EST EXECUTE!!!!
---
Je suis désolé pour le ton que ça prend.
J'espère que j'ai pu répondre à vos questions et donner une solution à vos problèmes... ... Bon code!
TriumpHS
25 févr. 2006 à 13:46
et j'ai fait la manipulation du troisième commentaire et ca ne marche toujours pas
je ne sait pas le problème qu'il y a mais bon
si vous pouvez me donner un code source simple se serai plus facile à l'adresse suivante postelalexis@msn.com
PS : serait t-il possible de le faire au format .css
24 févr. 2006 à 01:10
TMP=
TYPE=
NAME=
REPERTOIRE=images/
DESTINATION=images/
TEXTE=
Fatal error: Call to unsupported or undefined function move_uploaded_file() in your script on line 58
J'ai ce message d'erreur quelqu'un peut-il m'aider ?
merci
31 janv. 2006 à 22:11
la quistion
29 déc. 2005 à 16:03
moi j'ai ce message d'erreur :
Fatal error: Cannot redeclare send() in /var/www/free.fr/e/e/clemwebsite/classMail.php on line 268
cela correspond à la fonction send de la classmail...
je ne comprends pas trop ?
Merci de votre aide
26 oct. 2005 à 19:55
J'ai lu les commentaires et le code, ce qui m'a permis de voir que ton répertoire upload s'appelait en faite PHPMail_TempUpload. J'ai bien positionné ce répertoire à la racine du site et il a bien un chmod de 777.
Mon php n'est pas débutant mais pas non plus initié. Je n'ose pas trop faire de modification dedans avant de savoir vraiment ce qui se passe car par contre mon anglais est très mauvais.
J'ai l'impression qu'il ne trouve pas le dossier temporaire et qu'il n'est pas autorisé à écrire dedans, n'est-ce pas ?
Je vais essayer d'indiquer un chemin absolu.
Je vous tiens au courant
a+
26 oct. 2005 à 14:47
Je vois qu'il y a encore des problèmes avec ce script. Avant de continuer, je tiens à vous dire que je viens, une nouvelle fois, de le tester et, malheureusement pour vous, il fonctionne chez moi; ce qui implique que je ne vais pas le modifier dans les jours à venir.
Toutefois, en ce qui concerne le problème (que je n'ai pas!) avec les pièces jointes, il faut que je vous présente mes excuses. Je n'ai pas mentionné que, dans mon code, le répertoire 'upload' de LiTtleBuBu se nomme (pompeusement) 'PHPMail_TempUpload'.
En ce qui concerne le 'open_basedir restriction in effect', vérifiez que le répertoire temporaire ('PHPMail_TempUpload' dans mon cas) ne soit pas contenu dans un parent pour lequel vous n'avez pas changé les attributs. Un bon moyen d'éviter cela est de mettre le répertoire temporaire à la racine du site; dans ce cas, dans le code, les chemins relatifs au répertoire peuvent être modifiés par un chemin absolu. Ce qui est plus pratique...
En espérant que ceci a pu vous aider; bon code!
TriumpHS
PS: lire les commentaires c'est très bien, mais il faut aussi lire le code pour en comprendre les subtilités! Trois lignes de code remplacent facilement une page d'explications...
26 oct. 2005 à 14:19
Est-ce que cela s'applique également au script de triumphs ?
a+
Myriam
25 oct. 2005 à 23:59
Formail +
//Utilise une partie la classe Mail écrite par Léo West
Ce script met un formulaire sur son site qui permet aux visiteurs d'envoyer un email au webmaster
via un formulaire.
La nouveauté est que ce script permet au visiteur de mettre un fichier joint avec son message.
Le fichier joint est uploadé sur le serveur puis détruit une fois le mail envoyé.
INSTALLATION
Ce script ne fonctionne pas sous Online ou Nexen (et ne fonctionnera d'ailleurs jamais sur ces serveurs. J'ai
tout essayé et j'ai contacté le support technique, ils ont tellement bien modifié leur fonction email()
qu'il est impossible de l'utiliser avec ce script)
Créer un répertoire et uploader les deux fichiers dedans
Dans le fichier formail.php remplacer dans la ligne $dest="..." l'adresse email par la votre
Créer un répertoire "upload" au même niveau que le répertoire que vous avez créé (pas dedans, à côté :-) )
Et voila...
Stéphane
25 oct. 2005 à 23:07
// Attachement du fichier:_
if ("$NomFichier"!="") {
$name = $HTTP_POST_FILES['NomFichier']['name'];
if (is_uploaded_file($NomFichier)){
// copie temporaire du fichier joint.
copy($NomFichier, "../PHPMail_TempUpload/$name");
}
$m->Attach( "../PHPMail_TempUpload/$name", "application/octet-stream" );
}
// Envoi du mail:_
$m->Send();
// Destruction de la copie temporaire de la pièce jointe:_
if ("$NomFichier"!="") {
Unlink("../PHPMail_TempUpload/$name");
25 oct. 2005 à 22:55
25 oct. 2005 à 22:35
Regarde dans le code convenablement, mais je pense que le nom du répertoire prévu est "upload" à moins que tu l'ais changé ?
Stéphane
25 oct. 2005 à 22:32
J'ai bien mis le chmod du répertoire PHPMail_tempUpload a 777
Mon fichier joint ne faisait que 27ko.
as-tu une autre idée ?
a l'avance merci
25 oct. 2005 à 22:04
Stéphane
25 oct. 2005 à 19:53
J'ai testé les deux codes, celui de littlebubu et celui-ci. J'ai effectué les corrections comme décrits dans les commentaires, mais j'ai toujours le message d'erreur suivant :
+OK Hello there.
Warning: copy(): open_basedir restriction in effect. File(../PHPMail_TempUpload/code-projet-css.doc) is not within the allowed path(s): (/usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs:/tmp) in /usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs/PHPFormMail.php on line 102
Warning: copy(../PHPMail_TempUpload/code-projet-css.doc): failed to open stream: Operation not permitted in /usr/local/psa/home/vhosts/alpilles-fermetures.fr/httpdocs/PHPFormMail.php on line 102
Class Mail, method attach : file ../PHPMail_TempUpload/code-projet-css.doc can't be found
Je ne reçois pas mon message avec la pièce-jointe, par contre, je reçois bien l'email m'informant que : Votre e-mail, destiné à untel, a été envoyé!
Pouvez-vous m'aider
à l'avance merci
4 oct. 2005 à 17:53
http://www.phpcs.com/code.aspx?ID=22574
Bonne lecture ;-)
Stéphane
4 oct. 2005 à 09:31
d'ou ça peut venir??
30 sept. 2005 à 15:21
pas de piece jointe ni meme la valeurs des champs renseignés
pouvez vous m'éclairer la dessus?
20 sept. 2005 à 19:00
Il est utilisé sur un des sites que j'ai conçu http://www.carolobiker.com (partie contacts) depuis peu. Trouvé grace a LiTtleBuBu et modifié pour qu'il fonctionne correctement grace a vous tous.
Je l'ai moi meme modifié pour des pieces jointes allant jusqu'a 1 méga !
Merci
Stéphane
19 sept. 2005 à 11:22
Les deux fonctions 'send' sont utilisées dans des contextes différents; tu peux donc modifier le nom d'une d'entr'elles sans que cela ne gène trop l'exécution.
Comme la fonction send déclarée à la ligne 29 n'est utilisée que de façon interne, je te conseille de modifier cette dernière. Tu peux lui donner le nom '_send' (avec l'underscore!) et, dans la fonction 'checkExp' (ligne 131), tu changes tous les appels à 'send(...)' par des appels à '_send(...)'.
De toute façon, une fois que tu liras le code de la fonction checkExp, tu verras que la fonction 'send($data)' n'est, en fait, plus utilisée; en ce sens que les appels n'apparaissent que dans des instructions commentées. La raison est donnée dans les commentaires!
De plus, je sais que certains serveur n'admettens pas certaines commandes; il devient donc difficile d'utiliser cette fonction si l'on veut que le code fonctionne correctement (indépendemment du serveur que l'on appelle)...
Voilà! Bon code!
PS: j'ai fiat les mêmes changements, suite à ton poste, et il n'y a pas de problème. Amuses-toi bien!
19 sept. 2005 à 10:17
Il est vrai que j'ai déjà "function send($data)" en ligne 29. Est-ce mon insensibilité à la casse ? (j'avoue, je ne sais pas me sensibiliser :) Comment faire svp ?
12 sept. 2005 à 22:41
On ne fait plus : echo "$reponse"; mais directement echo $reponse;
Bon, ce sont de petites choses... mais rien de trop grâve non plus.