Formulaire d'envoi d'un message : ça marche pas, pourquoi ?

Le premier forum francophone sur l'éditeur de pages Web multiplateforme (Linux, Mac OS X, Windows) qui monte… KompoZer, héritier de Nvu, permet de créer vos pages Web graphiquement (wysiwyg) sans aucune connaissance du langage HTML.

Modérateur : chinon37

Répondre
ledamien
Arias
Messages : 15
Inscription : 30 janv. 2006, 01:52

Formulaire d'envoi d'un message : ça marche pas, pourquoi ?

Message par ledamien »

Alors voilà le résultat d'un an de travail avec Nvu :

http://glaneurdesons.ovh.org

A ma mesure, et sachant que j'ai commencé avec 0 connaissances, je suis plutôt content...

Ca marche super avec Firefox, ça bogue un peu avec IE, mais bon, ça marche.

Sauf que bon.

Avant de migrer sous OVH (le truc Demo1G, pour ceux qui connaissent), j'étais sous Orange, qui avait un p'tit outil bien pratique pour faire ses formulaires. OVH acceptant le php, j'ai donc cherché des scripts, et j'ai mis ça sur mon site.

Voilà donc ce que j'ai trouvé ici, assaisonné à cette sauce là sur ma page contact) :
<div align="center">
<form method="post" action="formmail.php"><input
name="subject" value="formmail" type="hidden">
<table>
<tbody>
<tr>
<td>Votre Nom:</td>
<td><input name="realname" size="30"
type="text"></td>
</tr>
<tr>
<td>Votre Email:</td>
<td><input name="email" size="30"
type="text"></td>
</tr>
<tr>
<td>Sujet:</td>
<td><input name="title" size="30"
type="text"></td>
</tr>
<tr>
<td colspan="2">Commentaires:<br>
<textarea cols="50" rows="6" name="comments"></textarea></td>
</tr>
</tbody>
</table>
<br>
<input value="Envoyer" type="submit"> - <input
value="Annuler" type="reset">
</form>
</div>
Et voilà le fichier formmail.php :
<?php
$TO = "glaneur.de.sons@gmail.com";

$h = "From: Site Ouebe " . $TO;

$message = "Message";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://glaneurdesons.ovh.org/merci.html");

?>
Les gens sont donc censés remplir le formulaire, ajouter leur message, et arrivent à une page de remerciements.

Tout fonctionne très bien, sauf une petite chose : j'ai beau tester, je ne reçois rien dans ma boîte email.

C'est quand même bête...

Quelqu'un a une solution (simple et rapide, passque, le PHP... Déjà que je suis content d'avoir enfin compris le html...).

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.10) Gecko/20070216 Firefox/1.5.0.10
La réalité, c'est ce truc qui fait mal quand on éteind l'ordinateur...
Fabrice.Tres.Net
Tyrannosaurus Rex
Messages : 2390
Inscription : 26 juin 2006, 12:50

Message par Fabrice.Tres.Net »

Faut vérifier que ton FAI accepte l'utilisation de la fonction mail.

Tu peux faire un test simple dans un fichier essai_mail.php

Code : Tout sélectionner

<?php

$resultat=mail("Ton_adresse_mail", "essai", "Coucou", "From: toto@coucou.net\r\n");
echo "resultat envoi mail = $resultat";

if ( $resultat )
   {
   echo "<br />Votre mail a bien été envoyé";
   }
else
  {
   echo "<br /><b>Votre mail n a pas pu être envoyé.</b><br />";
   }
?>
Tu remplaces dedans ton_adresse_mail.
Tu transfères le fichier sur ton web, puis tu appelles la page via http://{adresse de ton site web}/essai_mail.php
cela devrait envoyer directement à ton adresse

Editer pour changer à la ligne Sresultat en $resultat ...
Dernière modification par Fabrice.Tres.Net le 18 avr. 2007, 17:19, modifié 6 fois.
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Message par Ymai »

Bonjour
Je n'aime pas ce "formmail" qui ressemble trop à une fonction éventuellement disponible sur le serveur.

Qu'est-ce que ça donne si on change le nom du script d'envoi?
Autre hypothèse: la fonction "mail()" serait bloquée sur les Demo1G?
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Invité

Message par Invité »

J'ai essayé le fichier php "essai_mail", mais il me renvoie ça :
Parse error: syntax error, unexpected '=' in /home/g/l/a/glaneurdesons/www/essai_mail.php on line 3
Faut mettre un espace, ou autre chose ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.10) Gecko/20070216 Firefox/1.5.0.10
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Message par Ymai »

Et donc, nous aurions maintenant quelque chose comme:
<div align="center">
<form method="post" action="essai_mail.php"><input
name="subject" value="formmail" type="hidden">
<table>
<tbody>
<tr>
<td>Votre Nom:</td>
<td><input name="realname" size="30"
type="text"></td>
</tr>
<tr>
<td>Votre Email:</td>
<td><input name="email" size="30"
type="text"></td>
</tr>
<tr>
<td>Sujet:</td>
<td><input name="title" size="30"
type="text"></td>
</tr>
<tr>
<td colspan="2">Commentaires:<br>
<textarea cols="50" rows="6" name="comments"></textarea></td>
</tr>
</tbody>
</table>
<br>
<input value="Envoyer" type="submit"> - <input
value="Annuler" type="reset">
</form>
</div>
Pour la page contenant le formulaire
et le fichier essai_mail.php serait de la forme

Code : Tout sélectionner

<?php
$TO = "glaneur.de.sons@gmail.com";

$h = "From: Site Ouebe " . $TO;

$message = "Message";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://glaneurdesons.ovh.org/merci.html");

?>
???

Je ne vois toutefois aucun signe d'égalité en ligne 3 du script d'envoi. Je suis donc dubitatif quant à ma supposition.
J'ai testé ma solution: elle fonctionne parfaitement sur un 1000GP chez OVH.
Merci de reposter le code dans sa version actuelle.
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Fabrice.Tres.Net
Tyrannosaurus Rex
Messages : 2390
Inscription : 26 juin 2006, 12:50

Message par Fabrice.Tres.Net »

Anonymous a écrit :J'ai essayé le fichier php "essai_mail", mais il me renvoie ça :
Parse error: syntax error, unexpected '=' in /home/g/l/a/glaneurdesons/www/essai_mail.php on line 3
Faut mettre un espace, ou autre chose ?
Non, c'est que j'avais fait une erreur typographique c'est $resultat et non Sresultat !!!
J'ai mis la correction dans le post précédent.
ledamien
Arias
Messages : 15
Inscription : 30 janv. 2006, 01:52

Message par ledamien »

Alors, cette fois, avec le fichier essai-mail.php, il m'affiche :
Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in /home/g/l/a/glaneurdesons/www/essai_mail.php on line 6
Désolé... et vraiment merci d'essayer de m'aider...

Reprenons pour ce qui est de mes données :

Voilà le code html :
<div align="center">
<form method="post" action="formmail.php"><input
name="subject" value="formmail" type="hidden">
<table>
<tbody>
<tr>
<td>Votre Nom:</td>
<td><input name="realname" size="30"
type="text"></td>
</tr>
<tr>
<td>Votre Email:</td>
<td><input name="email" size="30"
type="text"></td>
</tr>
<tr>
<td>Sujet:</td>
<td><input name="title" size="30"
type="text"></td>
</tr>
<tr>
<td colspan="2">Commentaires:<br>
<textarea cols="50" rows="6" name="comments"></textarea></td>
</tr>
</tbody>
</table>
<br>
<input value="Envoyer" type="submit"> - <input
value="Annuler" type="reset">
</form>
</div>
Et voilà le fichier formail.php :
<?php
$TO = "glaneur.de.sons@gmail.com";

$h = "From: Site Ouebe " . $TO;

$message = "Message";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://glaneurdesons.ovh.org/merci.html");

?>
Y a t il un Champollion pour m'aider ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.10) Gecko/20070216 Firefox/1.5.0.10
La réalité, c'est ce truc qui fait mal quand on éteind l'ordinateur...
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Message par Ymai »

Bonjour
Je persiste à dire que le nom "formmail.php" pose des problèmes.
Je viens de tester sur un hébergement (payant) OVH.
J'obtiens
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, tech@ovh.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Apache/1.3.37 Server at sapajou.be Port 80
Si je change le nom de la page d'envoi et que j'utilise "envoyer.php", tout fonctionne à merveille.
J'en suis donc à me demander pour quelles raisons la solution que je préconisais n'a pas été retenue. :?: :?: :?:
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
ledamien
Arias
Messages : 15
Inscription : 30 janv. 2006, 01:52

Message par ledamien »

Ah pardon, j'avais pas compris...

Alors, j'ai renommé mon fichier PHP "envoyer.php", et modifié la page html en fonction :
<form method="post" action="envoyer.php"><input
name="subject" value="envoyer" type="hidden">
<table>
<tbody>
<tr>
<td>Votre Nom:</td>
<td><input name="realname" size="30"
type="text"></td>
</tr>
<tr>
<td>Votre Email:</td>
<td><input name="email" size="30"
type="text"></td>
</tr>
<tr>
<td>Sujet:</td>
<td><input name="title" size="30"
type="text"></td>
</tr>
<tr>
<td colspan="2">Commentaires:<br>
<textarea cols="50" rows="6" name="comments"></textarea></td>
</tr>
</tbody>
</table>
<br>
<input value="Envoyer" type="submit"> - <input
value="Annuler" type="reset">
</form>

Tout fonctionne bien (on arrive à la page de remerciements), mais toujours pas de mail dans ma boîte...

Je n'ai pas arrivé à savoir si la fonction mail, sur OVH Demo1G est activée ou pas. Faut il en conclure que non, et alors, quelle autre solution ?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.10) Gecko/20070216 Firefox/1.5.0.10
La réalité, c'est ce truc qui fait mal quand on éteind l'ordinateur...
Fabrice.Tres.Net
Tyrannosaurus Rex
Messages : 2390
Inscription : 26 juin 2006, 12:50

Message par Fabrice.Tres.Net »

:oops: Je t'ai corrigé le code que j'avais fait, tu peux le reprendre. Ce coup -ci je l'ai essayé, avant je m'étais contenté de l'écrire sans l'essayer.
A travailler sans filet, on finit par s'écraser!
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Message par Ymai »

Alors, je crains que la fonction mail() soit désactivée sur les Demo1G.
http://forums.ovh.net/showthread.php?t=10876

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
ledamien
Arias
Messages : 15
Inscription : 30 janv. 2006, 01:52

Message par ledamien »

Ah, ça répond à la question...

:( :( :( :( :( :( :( :( :(

Je souhaite tester OVH pendant quelques temps avant de passer à quelque chose de plus complet, alors on va trouver un autre moyen, en attendant...

(Je sais que ça n'a pas sa place ici, comme question, mais la fonction mail est disponible avec l'hébergement 60 GP sous ovh ?)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.10) Gecko/20070216 Firefox/1.5.0.10
La réalité, c'est ce truc qui fait mal quand on éteind l'ordinateur...
Ymai
Tyrannosaurus Rex
Messages : 4220
Inscription : 12 mars 2005, 11:36

Message par Ymai »

ledamien a écrit : (Je sais que ça n'a pas sa place ici, comme question, mais la fonction mail est disponible avec l'hébergement 60 GP sous ovh ?)
Affirmatif :D

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
ymai
« Un enfant de cinq ans comprendrait cela ! Allez me chercher un enfant de cinq ans ! »
Groucho Marx.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité