Discussion:
traitement d'un formulaire et envoi en BAL
(trop ancien pour répondre)
docanski
2007-04-19 17:21:23 UTC
Permalink
Bonsoir,
J'ai retrouvé dans mes archives le code aimablement fourni ici même par
un contributeur et testé en interne sous EsayPHP. Le formulaire à
traiter est ici : http://armorance.free.fr/formulaire.html .
Pour les essais en interne, sa première ligne de code est toutefois :
<form action="traitement.php" method="post" name="form1" id="form1"> et
le script PHP est le suivant :

<?php if(isset($ok)){
$dest="***@free.fr";
// on recupere les infos
$referer= getenv("HTTP_REFERER");
// envoi du resultat par email
$sujet= "Utilisation du formulaire Armorance";
$body="\n*** Resultat du formulaire ***\n";
if(count($HTTP_POST_VARS)){
while (list($key, $val) = each($HTTP_POST_VARS)){
$body.="$key : $val\n";
}
}
if(count($HTTP_GET_VARS)){
while (list($key, $val) = each($HTTP_GET_VARS)){
$body.="$key : $val\n";
}
}
$body.="*************************\n";
$headers = "From: ***@free.fr";
mail($dest,$sujet,$body,$headers);
?>

Problème : lors des tests, EasyPHP me donne :
Parse error: parse error in g:\program files\easyphp1-8\www\armorance en
php\armorancephp\traitement.php on line 23
sachant évidemment que le chemin cité est celui du fichier sur une de
mes partitions.
Qu'est-ce qui cloche et, évidemment, est-ce que la méthode est bonne ou
y a-t'il une erreur au niveau du script (mise en page du traitement
envoyé par Email, notamment car je n'y vois aucun "print", retour
automatique du visiteur sur la page d'accueil après envoi du formulaire,
etc.) pour l'usage voulu ?

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
Olivier Miakinen
2007-04-19 18:40:05 UTC
Permalink
[ un script de 21 ou 22 lignes ]
Parse error: [...] on line 23
Tu as un test qui commence par « if(isset($ok)){ » mais qui ne se
termine jamais (aucune accolade fermante ne correspond à l'accolade
ouvrante).
Qu'est-ce qui cloche
Il doit te manquer la fin du script.
docanski
2007-04-20 07:33:10 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by Olivier Miakinen
Il doit te manquer la fin du script.
En réalité, la réponse avait été donnée avec installation du script
*dans* le code du formulaire.
Je reproduis le tout ci-dessous, ce sera peut-être plus compréhensible :

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link href="armclair.css" rel="stylesheet" type="text/css" />
<title>formulaire</title>
</head>
<body>
<div id="formto"><p style="text-indent:0;text-decoration:underline
overline;color:red;font-weight:bold;text-align:center;margin-top:13px">|
Attention : les champs marqués d'un astérisque rouge doivent être
obligatoirement remplis ! |</p>
<form action="traitement.php" method="post" name="form1" id="form1">
<?php if(isset($ok)){
$dest="monmail";
// on recupere les infos
$referer= getenv("HTTP_REFERER");
// envoi du resultat par email
$sujet= "Prise de contact sur le site xxxxxxx";
$body="\n*** Resultat du formulaire ***\n";
if(count($HTTP_POST_VARS)){
while (list($key, $val) = each($HTTP_POST_VARS)){
$body.="$key : $val\n";
}
}
if(count($HTTP_GET_VARS)){
while (list($key, $val) = each($HTTP_GET_VARS)){
$body.="$key : $val\n";
}
}
$body.="*************************\n";
$headers = "From: monmail";
mail($dest,$sujet,$body,$headers);
?>
<p>ICI Afficher "le formulaire a bien été envoyé"</p>
<?php
}
else{
?>
<p><input type="hidden" name="Mail Subj" value="Formulaire Armorance" /></p>
<div id="formga">
<input type="text" name="Nom" value="" class="cnil" /> Nom <span
class="rouge">*</span><br />
<input type="text" name="Association" value="" class="cnil" />
Association <span class="rouge">*</span><br />
<input type="text" name="Adresse" value="" class="cnil" /> Adresse<br />
<input type="text" name="Localité" value="" class="cnil" /> Localité<br />
<input type="text" name="Département" value="" class="cnil" />
Département<br />
<input type="text" name="Code postal" value="" class="cnil" /> Code
postal<br />
<input type="text" name="Pays" value="" class="cnil" /> Pays<br />
<input type="text" name="Email" value="" class="cnil" /> E-mail <span
class="rouge">*</span><br />
<hr />
Vous avez trouvé ce site par :<br />
<br />
<select name="Moteurs" style="width:220px">
<option label="Liste des moteurs et annuaires :">Liste des moteurs et
annuaires
<option label="&nbsp;">~~~~~~~~~~~~~~~~~~~~
<option label="Google">Google
<option label="Yahoo">Yahoo
<option label="Dmoz">Dmoz
<option label="Lokace">Lokace
<option label="Nomade">Nomade
<option label="Voila">Voila
<option label="Excite">Excite
<option label="MSN(Microsoft)">MSN(Microsoft)
<option label="Altavista">Altavista
<option label="Skynet_Belgique">Skynet Belgique
<option label="Francite_Canada">Francite Canada
<option label="Toile_du_Quebec">La Toile du Quebec
<option label="Ecila">Ecila
<option label="Lycos">Lycos
<option label="Hot_Bot">Hot Bot
<option label="Autre_moteur">Un autre moteur ou annuaire
<option label="Anneau">Un anneau (Ring)
<option label="Forum_FAQ">Un forum ou une FAQ
<option label="Lien_sur_site">Un lien sur un autre site
<option label="Autre">Autre
</select><br />
<hr />
Quel type d'ordinateur utilisez-vous ?<br />
<input type="radio" name="Ordi" value="PC Intel" /> PC à base de CPU
Intel<br />
<input type="radio" name="Ordi" value="PC Amd" /> PC à base de CPU
AMD<br />
<input type="radio" name="Ordi" value="PC autre CPU" /> PC à base
d'autre CPU<br />
<input type="radio" name="Ordi" value="Macintosh" /> Macintosh<br />
<input type="radio" name="Ordi" value="TV ou WAP" /> TV ou WAP/GSM<br />
<hr />
Quel navigateur utilisez-vous ?<br />
<input type="radio" name="Navi" value="IE 5.x" /> Internet Explorer
série 5<br />
<input type="radio" name="Navi" value="IE 6.x" /> Internet Explorer
série 6<br />
<input type="radio" name="Navi" value="IE 7.x" /> Internet Explorer
série 7<br />
<input type="radio" name="Navi" value="IE et surcouche" /> Surcouche
IE (Maxthon ou autre)<br />
<input type="radio" name="Navi" value="Opera 7.0" /> Opera 7.0 ou
supérieur<br />
<input type="radio" name="Navi" value="Mozilla ou Galeon" /> Mozilla,
Firefox ou Galeon<br />
<input type="radio" name="Navi" value="Autre navigateur" /> Autre
navigateur<br />
<hr />
Etes-vous sous système Linux ? <input type="radio" name="Linux"
value="Oui" /> Oui <input type="radio"
name="Linux" value="Non" /> Non<br /></div>
<div id="formdr">Quelle est la rubrique qui vous a intéressé ? <span
class="rouge">*</span><br />
<select name="Rubriques" style="width:360px">
<option label="Choix">Faites votre choix parmi les rubriques proposées :
<option label="&nbsp;">~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<option label="Vallee_de_la_Rance_maritime">La vallée de la Rance maritime
<option label="Cotes_du_Nord_de_l_Armorique">Les côtes du Nord de
l'Armorique
<option label="Memento_des_champignons">Le memento des champignons
<option label="Creer_un_site_Web">Comment créer un site Web
</select><br />
<hr />
Quel est votre avis à propos de ce site ? <span class="rouge">*</span><br />
<textarea name="Votre avis" rows="7" cols="39">
</textarea>
<br />
<br />
Avez-vous des suggestions à formuler ?<br />
Si c'est le cas, veuillez les proposer ci-dessous :<br />
<textarea name="Suggestions" rows="7" cols="39">
</textarea>
<br />
<br />
Vous trouvez la navigation et l'affichage des pages :<br /><br />
<input type="radio" name="surf" value="lent" /> lente
<input type="radio" name="surf" value="moyen" /> moyenne
<input type="radio" name="surf" value="rapide" /> rapide
<hr />
Vous estimez le rare accompagnement sonore<br /><br />
<input type="radio" name="musique" value="agreable" /> agréable
<input type="radio" name="musique" value="desagreable" /> désagréable
<input type="radio" name="musique" value="indifferent" /> indifférent
<br />
<hr />
<p style="font-family:cursive;Arial,sans-serif;text-indent:65px">Merci
d'avoir accepté de répondre !</p>
<p style="color:blue;font-family:verdana;text-indent:140px">Docanski</p>
</div>
<hr style="visibility:hidden;clear:both" />
<div id="formli"><br />
<input type="submit" name="submit" value=" Envoyer " /> <input
type="reset" value="Recommencer"
name="reset" /></div>
<div style="text-align:center"><h5><a href="index.htm"
class="Lien">Retour au sommaire général</a></h5>
<div id="cnil">Rassurez-vous : ces renseignements ne seront pas intégrés
à une base de données et ne seront
donc pas suivis de courrier indésirable <strong>sauf</strong> si vous le
souhaitez expressément (mises à jour
uniquement) !</div><br /></div>
<input name="ok" type="hidden" id="ok" value="1" />
<?php } ?>
</form>
</div>
</body></html>

L'action du formulaire étant d'être dirigée vers "traitement.php", je
supposais qu'il devait contenir ce script. Je n'y avais pas ajouté la
dernière accolade située dans les balises d'ouverture et de fermeture
situées à la fin du formulaire, croyant qu'il s'agissait d'une erreur :
dans mon ignorance, je croyais qu'elles étaient vides, l'accolade ne
m'ayant pas frappé. Si je les ajoute, le résultat n'est toutefois pas
probant : si je double le script en le nommant "traitement.php", le
résultat est l'affichage de elui-ci en clair :-( ... et rien d'autre et
si "traitement.php" n'existe pas, c'est évidemment une erreur d'URL qui
est affichée.

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
P'tit Marcel
2007-04-20 16:38:21 UTC
Permalink
Post by docanski
En réalité, la réponse avait été donnée avec installation du script
*dans* le code du formulaire.
(...)
Post by docanski
L'action du formulaire étant d'être dirigée vers "traitement.php", je
supposais qu'il devait contenir ce script. Je n'y avais pas ajouté la
dernière accolade située dans les balises d'ouverture et de fermeture
dans mon ignorance, je croyais qu'elles étaient vides, l'accolade ne
m'ayant pas frappé. Si je les ajoute, le résultat n'est toutefois pas
probant : si je double le script en le nommant "traitement.php", le
résultat est l'affichage de elui-ci en clair :-(
à vue de nez ce script complet ne contient pas d'erreur (les accolades
manquantes que signalait Olivier ont été ajoutées).

Si le problème est que le formulaire se réaffiche quand on clique sur
Envoyer, sans qu'aucun mail soit émis, alors je subodore un problème de
register_global (voir la faq ici http://faqfclphp.free.fr/#rub2.7).

Je te suggère donc de remplacer
if(isset($ok))
par
if(isset($_POST['ok']))


a+
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
docanski
2007-04-23 16:25:17 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by P'tit Marcel
à vue de nez ce script complet ne contient pas d'erreur (les
accolades manquantes que signalait Olivier ont été ajoutées).
Et pourtant, il ne fonctionne pas.
J'ai remis en page, séparé le script PHP du formulaire et mis en ligne
pour essayer, aucun résultat : ni envoi de l'email avec le résultat du
traitement, ni affichage du message de remerciement sur le poste du
visiteur.
Voici le script de traitement.php :

<?php
if(isset($ok)){
$dest="***@free.fr";
// on recupere les infos
$referer= getenv("HTTP_REFERER");
// envoi du resultat par email
$sujet= "Utilisation du formulaire Armorance";
$body="\n*** Resultat du formulaire ***\n";
if(count($HTTP_POST_VARS)){
while (list($key, $val) = each($HTTP_POST_VARS)){
$body.="$key : $val\n";
}
}
if(count($HTTP_GET_VARS)){
while (list($key, $val) = each($HTTP_GET_VARS)){
$body.="$key : $val\n";
}
}
$body.="*************************\n";
$headers = "From: ***@free.fr";
mail($dest,$sujet,$body,$headers);
?>
<div style="position:relative;background:#ffffcc;border:1px red
groove;width:600px;padding:20px;height:auto;margin:auto;margin-top:169px;text-align:center">
<h3>Merci d'avoir accepté de remplir ce formulaire !</h3>
<h4>Pour poursuivre votre visite et retourner au sommaire général
cliquez ici : <a href="index.htm" style="color:blue">Armorance</a></h4>
</div>
<?php
}
else{
?>
<input name="ok" type="hidden" id="ok" value="1" />
<?php } ?>

et voici l'adresse du formulaire : http://armorance.free.fr/formperso.html

Ces deux fichiers sont en ligne pour permettre les essais.
Si quelques spécialistes pouvaient me dépanner : je cale :-(
Post by P'tit Marcel
Je te suggère donc de remplacer if(isset($ok)) par
if(isset($_POST['ok']))
Pas de différence :-(

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
Olivier Miakinen
2007-04-23 17:19:29 UTC
Permalink
Post by docanski
<?php
if(isset($ok)){
Je te conseille d'écrire :
if (isset($_REQUEST['ok'])) {

Même si actuellement tu as un php.ini qui autorise ça (ce qui est
déconseillé depuis quelques années quand même), tu sera embêté le
jour où tu voudras corriger tous tes scripts. Alors autant le faire
tout de suite.
Post by docanski
[...]
et voici l'adresse du formulaire : http://armorance.free.fr/formperso.html
Pas moins de 54 erreurs de validation pour une page en XHTML. Je
suppose donc que tu ne la déclares pas en application/xhtml+xml
pour les navigateurs qui le supportent, sinon elle ne s'afficherait
même pas !

Il est très possible que la non fermeture des éléments "option" empêche
le formulaire d'être lu jusqu'au bout, ce qui expliquerait tes ennuis.

Essaye déjà de corriger ces erreurs. Surtout, plutôt que de faire un
document XHTML (Transitional en plus !!!) qui sera lu comme une soupe de
balises SGML, tu devrais passer à HTML 4.01 Transitional d'abord, puis à
HTML 4.01 Strict. Ce sera beaucoup plus propre.
Olivier Miakinen
2007-04-23 21:42:11 UTC
Permalink
Post by docanski
et voici l'adresse du formulaire : http://armorance.free.fr/formperso.html
Pas moins de 54 erreurs de validation pour une [soupe de balises SGML].
Au passage, et quoique ce ne soit pas le sujet de ta question, je te
signale qu'il te manque quelques cas à tes choix multiples.
Quel type d'ordinateur utilisez-vous ?
PC à base de CPU Intel
PC à base de CPU AMD
PC à base d'autre CPU
Macintosh
TV ou WAP/GSM
Autre : machines Bull ou IBM avec AIX, machines Sun avec Solaris,
machines HP avec HP/UX, etc. (Cray ?)
Vous estimez le rare accompagnement sonore
agréable désagréable indifférent
inexistant


Il y a aussi une petite coquille.
lente moyenne rapide
lents moyens rapides
docanski
2007-04-23 21:42:11 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by Olivier Miakinen
if (isset($_REQUEST['ok'])) {
C'est fait.
Post by Olivier Miakinen
Pas moins de 54 erreurs de validation pour une page en XHTML.
Voui, je m'en doutais : pressé d'avancer, j'avais réécrit ce formulaire
en vitesse et attribué une DTD transitionnelle "au cas où". J'aurais dû
prendre le temps de vérifier, en effet, les balises <option> n'étaient
pas fermées.
Mea Culpa mais c'est corrigé là aussi et il est désormais publié avec
une DTD stricte.
Post by Olivier Miakinen
Il est très possible que la non fermeture des éléments "option" empêche
le formulaire d'être lu jusqu'au bout, ce qui expliquerait tes ennuis.
Ben non, c'est pas ça : malgré ces corrections, toujours aucun résultat.
Post by Olivier Miakinen
Surtout, plutôt que de faire un
document XHTML (Transitional en plus !!!) qui sera lu comme une soupe de
balises SGML, tu devrais passer à HTML 4.01 Transitional d'abord, puis à
HTML 4.01 Strict. Ce sera beaucoup plus propre.
Je sais : j'écris toutes mes pages en XHTML Strict mais ici j'ai pêché
par excès de précipitation et balancé une "transitionnelle" vite fait.
Mébon, ce n'était de toute façon que pour les tests.
Reste que je suis toujours dans la m.... :-(
Une autre piste everybody ?

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
Olivier Miakinen
2007-04-23 23:11:28 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
Il est très possible que la non fermeture des éléments "option" empêche
le formulaire d'être lu jusqu'au bout, ce qui expliquerait tes ennuis.
Ben non, c'est pas ça : malgré ces corrections, toujours aucun résultat.
Dommage. J'aurais aimé que ce soit aussi simple que ça.
Post by docanski
Post by Olivier Miakinen
Surtout, plutôt que de faire un
document XHTML (Transitional en plus !!!) qui sera lu comme une soupe de
balises SGML, tu devrais passer à HTML 4.01 Transitional d'abord, puis à
HTML 4.01 Strict. Ce sera beaucoup plus propre.
Je sais : j'écris toutes mes pages en XHTML Strict mais ici j'ai pêché
par excès de précipitation et balancé une "transitionnelle" vite fait.
Mébon, ce n'était de toute façon que pour les tests.
<petit troll>
Ok, cela valide maintenant en XHTML 1.0 Strict, mais il n'empêche que
cela reste de la soupe de balises pour les navigateurs puisque tu
déclares dans les entêtes que c'est du HTML (qui plus est sans préciser
de charset).
</petit troll>
Post by docanski
Reste que je suis toujours dans la m.... :-(
Une autre piste everybody ?
Pas encore, mais je vais y regarder d'un peu plus près maintenant.
Olivier Miakinen
2007-04-23 23:12:10 UTC
Permalink
Post by docanski
<?php
if(isset($ok)){
[ code PHP pour envoyer le courriel et bout de source HTML ]
<?php
}
else{
?>
<input name="ok" type="hidden" id="ok" value="1" />
<?php } ?>
Aucune des deux parties de ce script n'est une page HTML complète.

En outre, ...
Post by docanski
et voici l'adresse du formulaire : http://armorance.free.fr/formperso.html
... ce formulaire ne positionne pas la valeur "ok", ce qui fait que dans
traitement.php c'est toujours la 2e branche du « else » qui est choisie.


Alors vite fait, juste pour que ça fasse enfin quelque chose, même si
c'est moche et tout, remplace « if (isset($ok) » par « if (1) ».

Ensuite tu vireras tout le code inutile (if { ... } else { ... }) et tu
rajouteras le reste du HTML. Mais il sera temps de le faire quand enfin
tu nous auras dit « ça y est, le courriel est envoyé », pas avant.
docanski
2007-04-25 10:06:53 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by Olivier Miakinen
Alors vite fait, juste pour que ça fasse enfin quelque chose, même si
c'est moche et tout, remplace « if (isset($ok) » par « if (1) ».
Ensuite tu vireras tout le code inutile (if { ... } else { ... }) et
tu rajouteras le reste du HTML. Mais il sera temps de le faire quand
enfin tu nous auras dit « ça y est, le courriel est envoyé », pas
avant.
Le formulaire constitue une page HTML ne contenant aucune ligne de code
en php et renvoie donc vers le script final "traitement.php" présent sur
le serveur qui est désormais :

<?php
if (1) {
$dest="***@free.fr";
// on recupere les infos
$referer= getenv("HTTP_REFERER");
// envoi du resultat par email
$sujet= "Utilisation du formulaire Armorance";
$body="\n*** Resultat du formulaire ***\n";
if(count($HTTP_POST_VARS)){
while (list($key, $val) = each($HTTP_POST_VARS)){
$body.="$key : $val\n";
}
}
if(count($HTTP_GET_VARS)){
while (list($key, $val) = each($HTTP_GET_VARS)){
$body.="$key : $val\n";
}
}
$body.="*************************\n";
$headers = "From: ***@free.fr";
mail($dest,$sujet,$body,$headers);
?>
<div style="position:relative;background:#ffffcc;border:1px red
groove;width:600px;padding:20px;height:auto;margin:auto;margin-top:169px;text-align:center"><h3>Merci
d'avoir accepté de remplir ce formulaire !</h3>
<h4>Pour poursuivre votre visite et retourner au sommaire général
cliquez ici : <a href="index.htm" style="color:blue">Armorance</a></h4>
</div>
<input name="ok" type="hidden" id="ok" value="1" />
<?php } ?>

Mais ...
:-( : le courriel n'est pas envoyé et le serveur me renvoie l'erreur
suivante :

Warning: mail() [function.mail]: Spam detecte, mail non envoye. in
/mnt/141/sdb/6/1/monmail/traitement.php on line 21

Bien entendu, l'adresse "monmail" dans le script est évidemment
remplacée par la véritable adresse du destinataire que je ne reproduis
pas ici pour éviter d'éventuels futurs spams.
Je sens que ça vient ;-) ... mais ce n'est pas encore ça.

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
Olivier Miakinen
2007-04-25 22:04:36 UTC
Permalink
Post by docanski
[...]
[...]
mail($dest,$sujet,$body,$headers);
[...]
Warning: mail() [function.mail]: Spam detecte, mail non envoye. in
/mnt/141/sdb/6/1/monmail/traitement.php on line 21
Bien entendu, l'adresse "monmail" dans le script est évidemment
remplacée par la véritable adresse du destinataire
Aux deux endroits ? Si tu mets comme adresse de From celle du
destinataire, il pourrait sembler légitime que la fonction d'envoi
de courriel se plaigne.

Par ailleurs, on en arrive à un point où ta config peut influer énormément :
- Sur quel O.S. fais-tu les tests ?
- Utilises-tu un programme sendmail en local ?
- Si oui, est-il dans le PATH ?
- Sinon, les paramètres « smtp » et « smtp_port » sont-ils OK ?
- As-tu défini un « sendmail_from » ?
- ...

http://fr.php.net/manual/fr/ref.mail.php
docanski
2007-04-26 22:48:06 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by Olivier Miakinen
Post by docanski
Bien entendu, l'adresse "monmail" dans le script est évidemment
remplacée par la véritable adresse du destinataire
Aux deux endroits ? Si tu mets comme adresse de From celle du
destinataire, il pourrait sembler légitime que la fonction d'envoi de
courriel se plaigne.
Je ne le crois pas. En effet, c'est comme si je m'envoyais un mail à
moi-même, en somme.
C'est d'ailleurs le principe du formulaire (CGI) que Free met à
disposition de
ses hébergés : l'adresse email de l'expéditeur est la même que celle du
destinataire.
Je le supposais, en effet et c'est pourquoi j'ai fait ces essais
directement en ligne ... avec le résultat que tu sais.
Post by Olivier Miakinen
- Sur quel O.S. fais-tu les tests ?
Win2k
Post by Olivier Miakinen
- Utilises-tu un programme sendmail en local ?
EasyPHP l'intègre (voir ci-dessous)
Post by Olivier Miakinen
- Si oui, est-il dans le PATH ?
J'ai cherché un fichier portant un tel nom dans l'OS : ne trouve pas ...
Je me souviens vaguement de l'époque du bon vieux DOS où celui-ci
pouvait être défini mais je suppose qu'il ne s'agit plus de cela : il
n'y a plus de DOS dans ma machine.
Post by Olivier Miakinen
- Sinon, les paramètres « smtp » et « smtp_port » sont-ils OK ?
Réglés par défaut sur localhost et port25
Post by Olivier Miakinen
- As-tu défini un « sendmail_from » ?
http://fr.php.net/manual/fr/ref.mail.php
Je vais lire cette doc mais comme écrit ci-dessus, j'ai fait les essais
en ligne, sans succès.

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
Olivier Miakinen
2007-04-27 11:03:08 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
Si tu mets comme adresse de From celle du
destinataire, il pourrait sembler légitime que la fonction d'envoi de
courriel se plaigne.
Je ne le crois pas. En effet, c'est comme si je m'envoyais un mail à
moi-même, en somme.
Aucun problème si c'est bien le cas. Mais es-tu toujours le destinataire
de tous les courriels que tu envoies ?
Post by docanski
C'est d'ailleurs le principe du formulaire (CGI) que Free met à
disposition de
ses hébergés : l'adresse email de l'expéditeur est la même que celle du
destinataire.
Admettons pour l'entête From: du message. Mais pour le FROM d'enveloppe
et le champ Return-Path ?
Post by docanski
Post by Olivier Miakinen
- Sur quel O.S. fais-tu les tests ?
Win2k
Ok. Ce sont donc smtp, smtp_port et sendmail_from qui seront utilisés si
tu n'as pas de sendmail_path.
Post by docanski
Post by Olivier Miakinen
- Utilises-tu un programme sendmail en local ?
EasyPHP l'intègre (voir ci-dessous)
Tu utilises donc EasyPHP sur ton serveur de production qui est un
Windows 2000. J'ai entendu dire plusieurs fois que ce n'était pas très
prudent car les paramètres par défaut ne sont pas forcément très bien
choisis, mais je ne suis pas un spécialiste, et puis tu as pu configurer
tout comme il faut.
Post by docanski
Post by Olivier Miakinen
- Si oui, est-il dans le PATH ?
J'ai cherché un fichier portant un tel nom dans l'OS : ne trouve pas ...
Je me souviens vaguement de l'époque du bon vieux DOS où celui-ci
pouvait être défini mais je suppose qu'il ne s'agit plus de cela : il
n'y a plus de DOS dans ma machine.
Je suppose que sendmail_path est bien laissé à NULL, c'est ça ?
Post by docanski
Post by Olivier Miakinen
- Sinon, les paramètres « smtp » et « smtp_port » sont-ils OK ?
Réglés par défaut sur localhost et port25
Tu aurais donc un serveur de mail directement sur ton Windows 2000. Avec
qui discute-t-il ? Es-tu sûr que ce n'est pas un relai ouvert ?
Post by docanski
Post by Olivier Miakinen
- As-tu défini un « sendmail_from » ?
Alors là, ça m'étonnerait fort que cette adresse t'appartienne. Si c'est
ça qui est mis dans le FROM d'enveloppe, je comprendrais que le serveur
râle, même s'il est correctement configuré.
Post by docanski
Post by Olivier Miakinen
http://fr.php.net/manual/fr/ref.mail.php
Je vais lire cette doc mais comme écrit ci-dessus, j'ai fait les essais
en ligne, sans succès.
Encore une fois je ne suis pas un spécialiste, mais j'ai l'impression --
corrige-moi si je me trompe -- que tu es en train de jouer à l'apprenti
sorcier avec le mail sans trop t'y connaître toi non plus. Alors là je
dis ATTENTION DANGER ! Dans de tels cas il est très facile d'installer
un relai ouvert, qui fera qu'après que tu auras contribué à faire
transiter quelques zillions de spams tu te verras mis en liste noire.
docanski
2007-04-27 14:20:38 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by Olivier Miakinen
Admettons pour l'entête From: du message. Mais pour le FROM d'enveloppe
et le champ Return-Path ?
?
Post by Olivier Miakinen
Je suppose que sendmail_path est bien laissé à NULL, c'est ça ?
Réglé sur "no value". C'est la même chose, je suppose.
Post by Olivier Miakinen
Encore une fois je ne suis pas un spécialiste, mais j'ai l'impression --
corrige-moi si je me trompe -- que tu es en train de jouer à l'apprenti
sorcier avec le mail sans trop t'y connaître toi non plus.
En effet : je cherche une solution à ce simple et unique problème de
traitement et ne maîtrise pas la pratique d'un serveur. C'est pourquoi
je tente ces essais au moyen de EasyPHP qui, paraît-il, est la voie la
plus facile pour un débutant. Quand je fais l'essai avec ce serveur
local pour le formulaire qui envoie le résultat de celui-ci vers le
fichier *local* traitement.php, j'obtiens :

Warning: mail(): Failed to connect to mailserver at "localhost" port 25,
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
in g:\program files\easyphp1-8\www\essais de traitement de
formulaire\traitement.php on line 21

Alors qu'en faisant la même chose sur le serveur (hébergeur) Free, le
message est :

Warning: mail() [function.mail]: Spam detecte, mail non envoye. in
/mnt/141/sdb/6/1/monmail/traitement.php on line 21

L'erreur rapportée par le serveur est donc bien la même chaque fois :
elle concerne la ligne 21.
Il ne semble donc pas y avoir de problème au niveau de la configuration
du serveur mais plutôt au niveau du script.
L'idéal serait peut-être d'en essayer un autre, mais je n'ai rien trouvé
de tel sur le Web sinon soit avec adresse email visible dans le
formulaire (ce qui est évidemment à exclure), soit avec utilisation
d'une BDD.
Post by Olivier Miakinen
dis ATTENTION DANGER ! Dans de tels cas il est très facile d'installer
un relai ouvert, qui fera qu'après que tu auras contribué à faire
transiter quelques zillions de spams tu te verras mis en liste noire.
Le serveur est désactivé quand je suis en connexion (RTC), ce qui
devrait m'affranchir de tout risque de ce genre.

... et je suis toujours en rade :-(

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
Olivier Miakinen
2007-04-27 15:00:38 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
Encore une fois je ne suis pas un spécialiste, mais j'ai l'impression --
corrige-moi si je me trompe -- que tu es en train de jouer à l'apprenti
sorcier avec le mail sans trop t'y connaître toi non plus.
En effet : je cherche une solution à ce simple et unique problème de
traitement et ne maîtrise pas la pratique d'un serveur. C'est pourquoi
je tente ces essais au moyen de EasyPHP qui, paraît-il, est la voie la
plus facile pour un débutant. Quand je fais l'essai avec ce serveur
local pour le formulaire qui envoie le résultat de celui-ci vers le
Warning: mail(): Failed to connect to mailserver at "localhost" port 25,
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
in g:\program files\easyphp1-8\www\essais de traitement de
formulaire\traitement.php on line 21
Donc, tu n'as pas de serveur de mail sur ta machine locale, en tout cas
pas à l'écoute sur le port 25. C'est une bonne nouvelle, ça veut dire au
moins que tu n'as pas créé un relai ouvert pour le spam.
Post by docanski
Alors qu'en faisant la même chose sur le serveur (hébergeur) Free, le
Warning: mail() [function.mail]: Spam detecte, mail non envoye. in
/mnt/141/sdb/6/1/monmail/traitement.php on line 21
Attends voir... Tu parles bien de l'hébergeur gratuit Free et pas de
l'hébergeur payant Online ? Peux-tu confirmer que les réponses à mes
questions précédentes (Win2k, envoi du courriel à localhost:25 avec
comme adresse de From « ***@localhost.com ») sont bien sur le serveur
de ton hébergeur ???
Post by docanski
elle concerne la ligne 21.
Il ne semble donc pas y avoir de problème au niveau de la configuration
du serveur mais plutôt au niveau du script.
Tu ne peux pas dire ça sérieusement. Si c'était un problème au niveau du
script, tu aurais la même erreur dans les deux cas, or ici il semble que
tu n'aies aucun serveur de mail sur ta machine locale, tandis qu'il y en
a un chez ton hébergeur mais que celui-ci refuse ton message.
Post by docanski
Post by Olivier Miakinen
dis ATTENTION DANGER ! Dans de tels cas il est très facile d'installer
un relai ouvert, qui fera qu'après que tu auras contribué à faire
transiter quelques zillions de spams tu te verras mis en liste noire.
Le serveur est désactivé quand je suis en connexion (RTC), ce qui
devrait m'affranchir de tout risque de ce genre.
STOP ! Cesse de parler à la fois de tes essais en local et de ceux chez
ton hébergeur. Choisis ce qui sera *la* solution finale, et tiens t'y.
C'est déjà assez difficile comme ça.
Post by docanski
... et je suis toujours en rade :-(
Tu as essayé de contacter Free ? J'ai suivi le lien indiqué sur la FAQ
de fclp, sans succès.
docanski
2007-04-27 16:09:34 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by Olivier Miakinen
Donc, tu n'as pas de serveur de mail sur ta machine locale, en tout cas
pas à l'écoute sur le port 25. C'est une bonne nouvelle,
Ah que oui, alors ! ;-)
Post by Olivier Miakinen
Post by docanski
Alors qu'en faisant la même chose sur le serveur (hébergeur) Free, le
Warning: mail() [function.mail]: Spam detecte, mail non envoye. in
/mnt/141/sdb/6/1/monmail/traitement.php on line 21
Attends voir... Tu parles bien de l'hébergeur gratuit Free et pas de
l'hébergeur payant Online ? Peux-tu confirmer que les réponses à mes
questions précédentes (Win2k, envoi du courriel à localhost:25 avec
de ton hébergeur ???
L'hébergeur est bien Free (puisque le formulaire et l'email destinée à
rapatrier les résultats du traitement sont bien relatifs à ma signature)
mais "localhost" et ses réglages sont bien sur le serveur *local* soit
EasyPHP, sur mon DD.
Sinon "localhost" n'aurait aucun sens, me semble-t'il.
Post by Olivier Miakinen
... tu aurais la même erreur dans les deux cas, or ici il semble que
tu n'aies aucun serveur de mail sur ta machine locale, tandis qu'il y en
a un chez ton hébergeur mais que celui-ci refuse ton message.
La répétition du message d'erreur de la *ligne 21* du script paraît
pourtant claire, étant la même dans les deux cas ...
Post by Olivier Miakinen
STOP ! Cesse de parler à la fois de tes essais en local et de ceux chez
ton hébergeur. Choisis ce qui sera *la* solution finale, et tiens t'y.
Ben, la solution finale consiste évidemment à faire fonctionner
formulaire + traitement chez mon hébergeur.
Post by Olivier Miakinen
C'est déjà assez difficile comme ça.
Il me semble, en effet :-(
Peut-être suis-je vraiment trop "newbee" ...
Pourtant je fais des efforts ;-)
Post by Olivier Miakinen
Tu as essayé de contacter Free ?
Inutile, je pense : la fonction "sendmail" y est activée, l'email
utilisée est bien valide (elle sert d'ailleurs essentiellement aux
retours des traitements des CGI de Free) et le formulaire tel que je
l'ai soumis ici, accompagné de son script PHP "traitement.php" sont bien
publiés à la racine du site en signature. Pour t'en convaincre :
http://armorance.free.fr/formperso.html
Mais ça, je l'avais déjà dit ...

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
Olivier Miakinen
2007-04-27 18:15:30 UTC
Permalink
Post by docanski
Post by Olivier Miakinen
Post by docanski
Alors qu'en faisant la même chose sur le serveur (hébergeur) Free, le
Warning: mail() [function.mail]: Spam detecte, mail non envoye. in
/mnt/141/sdb/6/1/monmail/traitement.php on line 21
Attends voir... Tu parles bien de l'hébergeur gratuit Free et pas de
l'hébergeur payant Online ? Peux-tu confirmer que les réponses à mes
questions précédentes (Win2k, envoi du courriel à localhost:25 avec
de ton hébergeur ???
L'hébergeur est bien Free (puisque le formulaire et l'email destinée à
rapatrier les résultats du traitement sont bien relatifs à ma signature)
Bien. Oublie donc les essais que tu as fait chez toi, et je te repose la
question pour l'hébergement chez Free : Win2k ou Unix ? Envoi vers un
port donné d'un serveur de mail ou vers un programme de style sendmail ?
Quel nom est configuré pour FROM et Return-Path ?
Post by docanski
mais "localhost" et ses réglages sont bien sur le serveur *local* soit
EasyPHP, sur mon DD.
Sinon "localhost" n'aurait aucun sens, me semble-t'il.
Mais si, bien sûr ! À partir du moment où la machine utilise l'ensemble
de protocoles TCP/IP il y a de grandes chances pour que l'interface de
loopback s'appelle localhost avec l'adresse 127.0.0.1. Mais il y a aussi
de grandes chances pour que le serveur Web soit une machine différente
du serveur de courrier, auquel cas il faudrait contacter une autre
adresse que localhost -- si c'est comme ça que ça marche chez Free.
Post by docanski
Post by Olivier Miakinen
... tu aurais la même erreur dans les deux cas, or ici il semble que
tu n'aies aucun serveur de mail sur ta machine locale, tandis qu'il y en
a un chez ton hébergeur mais que celui-ci refuse ton message.
La répétition du message d'erreur de la *ligne 21* du script paraît
pourtant claire, étant la même dans les deux cas ...
Grrr... tu n'as pas dit que d'un côté le message d'erreur était « je ne
peux pas me connecter à localhost:25 » et que de l'autre c'était « vous
faites du spam » ???

Fais gaffe, je suis patient, mais là je suis à la limite de tout laisser
tomber et de te laisser te démerder tout seul.
Post by docanski
Post by Olivier Miakinen
STOP ! Cesse de parler à la fois de tes essais en local et de ceux chez
ton hébergeur. Choisis ce qui sera *la* solution finale, et tiens t'y.
Ben, la solution finale consiste évidemment à faire fonctionner
formulaire + traitement chez mon hébergeur.
BIEN.
Post by docanski
Post by Olivier Miakinen
Tu as essayé de contacter Free ?
Inutile, je pense : la fonction "sendmail" y est activée,
Tu as déjà un script qui marche, pour pouvoir l'affirmer ? Parce que
pour le moment, ta fonction mail() te retourne une erreur, et P'tit
Marcel a signalé que cette fonction avait été modifiée par ledit hébergeur.
docanski
2007-04-27 22:05:40 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by Olivier Miakinen
Bien. Oublie donc les essais que tu as fait chez toi, et je te repose la
question pour l'hébergement chez Free : Win2k ou Unix ? Envoi vers un
port donné d'un serveur de mail ou vers un programme de style sendmail ?
Pas de port donné mais vers un programme de style sendmail.
Quand au système, il me semble bien que Free fonctionne avec le libre,
soit Unix.
Post by Olivier Miakinen
Quel nom est configuré pour FROM et Return-Path ?
Sur Free ? Aucune idée.
Post by Olivier Miakinen
Mais si, bien sûr ! À partir du moment où la machine utilise l'ensemble
de protocoles TCP/IP il y a de grandes chances pour que l'interface de
loopback s'appelle localhost avec l'adresse 127.0.0.1.
Avec EasyPHP, oui.
Tu parles bien de ma configuration en local, hein ?! (pas taper, siouplé !)
Post by Olivier Miakinen
Grrr... tu n'as pas dit que d'un côté le message d'erreur était « je ne
peux pas me connecter à localhost:25 » et que de l'autre c'était « vous
faites du spam » ???
Si, si.
Mais aussi qu'il y avait une erreur à la ligne 21 ! (pas taper, siouplé !)
Post by Olivier Miakinen
Fais gaffe, je suis patient, mais là je suis à la limite de tout laisser
tomber et de te laisser te démerder tout seul.
Calmos !
Post by Olivier Miakinen
BIEN.
Ouf ! ;-)
Post by Olivier Miakinen
Tu as déjà un script qui marche, pour pouvoir l'affirmer ? Parce que
pour le moment, ta fonction mail() te retourne une erreur,
L'autre script, oui, celui avec lequel nous nous escrimions tous les deux.
Post by Olivier Miakinen
et P'tit
Marcel a signalé que cette fonction avait été modifiée par ledit hébergeur.
Apparemment non puisqu'avec son script, après corrections, je n'ai plus
de retour d'erreur et le serveur me renvoie bien le résultat du formulaire.
Ce script fonctionne donc parfaitement et je suis HEU-REUX ! :-)
(en attendant d'éventuelles extensions, peut-être)

Merci à toi de t'être penché avec patience sur mon problème. Le script
qui t'a fait arracher les cheveux dans ce fil doit donc comporter l'une
ou l'autre erreur mais ma méconnaissance de PHP ne me permet pas de la
détecter. Je vais toutefois tenter d'en savoir un peu plus, notamment
pour un autre besoin pour lequel je lance un nouveau fil.

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
P'tit Marcel
2007-04-27 15:26:42 UTC
Permalink
Post by docanski
Alors qu'en faisant la même chose sur le serveur (hébergeur) Free, le
Warning: mail() [function.mail]: Spam detecte, mail non envoye. in
/mnt/141/sdb/6/1/monmail/traitement.php on line 21
pas de rapport avec php standard. Ton hébergeur a modifié php pour
renvoyer cette erreur. Vois la FAQ de Free ou son forum dédié
(proxad.free.services.pagesperso).


a+
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng/
Olivier Miakinen
2007-04-27 18:16:44 UTC
Permalink
Post by docanski
:-( : le courriel n'est pas envoyé et le serveur me renvoie l'erreur
Warning: mail() [function.mail]: Spam detecte, mail non envoye. in
/mnt/141/sdb/6/1/monmail/traitement.php on line 21
<http://www.google.fr/search?q=%22Spam+detecte%2C+mail+non+envoye.%22>
<http://webnews.ft-sucks.com/thread-proxad.free.services.pagesperso-12986-_warning_mail_functionmail_spam_detecte_mail_.html>
docanski
2007-04-27 22:05:40 UTC
Permalink
Alors que les eleveurs et agriculteurs polluent toujours la Bretagne,
Post by Olivier Miakinen
<http://webnews.ft-sucks.com/thread-proxad.free.services.pagesperso-12986-_warning_mail_functionmail_spam_detecte_mail_.html>
La solution n'y a pas été trouvée et la question est demeurée sans
réponse fiable.
Mébon ...

Cordialement,
--
docanski

- Les Côtes du nord de la Bretagne par le sentier des douaniers
- Memento des champignons : le guide le plus complet du Web
- Et d'autres sujets encore sur ----> http://armorance.free.fr
Continuer la lecture sur narkive:
Loading...