Se connecter / S'enregistrer
Votre question

formulaire PhP "votre message a bien été envoyé"

Tags :
  • Html
  • Programmation
Dernière réponse : dans Programmation
3 Juin 2006 14:28:25

Bonjour,

J'ai un formulaire HTML, relayé par une page PhP. Tous les éléments des cases renseingées par le visiteur m'arrivent bien en retour, mais le visiteur, après avoir rempli le formulaire, tombe sur une page : "erreur 405" au lieu de trouver un petit mot du genre "merci !".

Comme je n'y connais absolument rien en PhP (en HTML non plus d'ailleurs !), j'ai lu des tooooonnes d'articles et fais des taaaaas d'essais depuis huit jours, mais en vain....
Si quelqu'un pouvait avoir la gentillesse de me dire ce que je dois ajouter je lui promets de le mettre dans toutes mes prières laïques...
Cordialement
Marie
_________________
Voici ma page PhP :

<?php

$monEmail="toto@wanadoo.fr<i></i>";
$sujet="boletin_de_inscripcion";
$returnPage="retour.html";
$error="";
if ($_POST['nombre']=="")
$error.="nombre, ";
if (!isAddressValid($_POST['email']))
$error.="email, ";
if ($_POST['taller']=="0")
$error.="taller, ";
if ($_POST['cuota_inscripcion']=="0")
$error.="cuota_inscripcion, ";
if ($_POST['direccion']=="0")
$error.="direccion, ";
function isAddressValid($EmailAddress)
{
if(ereg("^[^@ ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$",$EmailAddress)) return true;
else return false;
}

if ($error != "")
{
echo "
<SCRIPT LANGUAGE='JavaScript'>
<!--
alert('il faut remplir le(s) champ(s) $error');
history.go(-1);
//-->
</SCRIPT>
";
}

else{

//
$nombre="nombre : ".$_POST["nombre"]."<br>";
$direccion_congr="direccion_congr : ".$_POST["direccion_congr"]."<br>";
$poblacion="poblacion : ".$_POST["poblacion"]."<br>";
$cp="cp : ".$_POST["cp"]."<br>";
$prov="prov : ".$_POST["prov"]."<br>";
$tel="tel : ".$_POST["tel"]."<br>";
$fax="fax : ".$_POST["fax"]."<br>";
$email="email : ".$_POST["email"]."<br>";
$profesion="profesion : ".$_POST["profesion"]."<br>";
$lugartrabajo="lugar_trabajo : ".$_POST["lugar_trabajo"]."<br>";
$taller1="taller1 : ".$_POST["taller1"]."<br>";
$taller2="taller2 : ".$_POST["taller2"]."<br>";
$taller3="taller3 : ".$_POST["taller3"]."<br>";
$taller4="taller4 : ".$_POST["taller4"]."<br>";
$empresa="empresa : ".$_POST["empresa"]."<br>";
$atencion="atencion : ".$_POST["atencion"]."<br>";
$dir_factura="dir_factura : ".$_POST["dir_factura"]."<br>";
$cp_factura="cp_factura : ".$_POST["cp_factura"]."<br>";
$ciudad_factura="ciudad_factura : ".$_POST["ciudad_factura"]."<br>";
$prov_factura="prov_fra : ".$_POST["prov_fra"]."<br>";
$cif="cif : ".$_POST["cif"]."<br>";
$socios="socios : ".$_POST["socios"]."<br>";
$no_socios="no_socios : ".$_POST["no_socios"]."<br>";
$mir="mir : ".$_POST["mir"]."<br>";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: <$monEmail>\r\n";
$headers .= "Bcc:titi@wanadoo.fr\n";

$message =$nombre.$direccion_congr.$poblacion.$cp.$prov.$tel.$fax.$email.$profesion.$lugar_trabajo.$taller1.$taller2.$taller3.$taller4.$empresa.$atencion.$dir_factura.$cp_factura.$ciudad_factura.$prov_fra.$cif.$socios.$no_socios.$mir;

mail($monEmail,$sujet,$message,$headers);
header("Location: /$returnPage/");
}

?>
<p> </p>
:-)

Autres pages sur : formulaire php message bien envoye

a c 145 L Programmation
3 Juin 2006 14:34:44

Une fois le mail envoyé, le script te renvoit sur la page retour.html...

Soit tu crées cette page (en lui mettant ton message de remerciement) soit tu modifies la ligne:
$returnPage="retour.html";
pour lui mettre le nom de ta page.
3 Juin 2006 14:38:02

Heuuuu, j'ai oublié de dire que ça ne renvoie pas à ma page "retour.html" justement. J'en suis donc arrivée à la conclusion que le pack d'hébergement de mon copain n'inclut pas les options nécessaires.

Alors, je voudrais juste ne pas tomber sur la page d'erreur....

Mais merci pour ta réponse ;-)
Contenus similaires
3 Juin 2006 14:58:12

header("Location: /$returnPage/");
( a la fin de ton fichier )

pourquoi entour tu la variable par des anti-slashs ? :s


essaye plutot sa :

header("Location: ".$returnPage);

la si ta page .php et ta page retour.html sont au même niveau dans l'arborescence sa va te rediriger sur la bonne page normalement.....
3 Juin 2006 15:03:27

Vraiment, un GRAND merci du fond du coeur, ça marche !
Marie
4 Juin 2006 10:02:06

Allons bon... Ca marche sur le site d'essai que j'ai créé chez Lycos (gratuit). Ca ne fonctionne plus chez un hébergeur payant (c'est pourquoi la fonction était rendue inopérante à l'origine).
Donc je modifie ma question : que faut-il faire au niveau des CGI ou autres, chez l'hébergeur, pour que ça marche?????
Pour l'instant nous avons renvoyé les liens du formulaire vers Lycos, mais c'est un comble quand on a payé pour se passer de bub.... :-D
4 Juin 2006 10:19:06

Suivant le serveur sur lequel ton hebergeur met le site en production, il faut remplacer les \r\n par des \n dans le header du mail.

exemple de header qui marche (car il peut etre possible de ne pas recevoir de mail a cause d'un mauvais header, ce qui m'est arrivé) :

$header = "MIME-Version: 1.0\n";
$header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$header .= "X-Mailer: PHP/" . phpversion() . "\n";
$header .= 'From: monadresse@mon.domaine' . "\n" . 'Reply-To: monadresse@mon.domaine';




Ensuite pour la redirection je mettrai plutot ca :

header("Location:' . $returnPage . '");


ne pas oublier le guillemet de fin, et aussi que retour.html soit dans le meme repertoire que la page de formulaire si la variable $returnPage ne contient pas le chemin de retour.html.
4 Juin 2006 10:36:42

Merci pour ta réponse.
Pour les headers, ça fonctionne comme ça.
Ler problème c'eest de ne pas tomber sur erreur 405 à l'envoi du formulaire, mais sur la page de retour.
J'ai essayé header("Location:' . $returnPage . '");
Ca ne marche toujours pas.

Est-ce qu'il ne faut pas "bidouiller" quelque chose au niveau des CGI (ou que sais-je encore) de l'hébergeur ?
Puisque tout ceci fonctionne en gratuit sur Lycos...??? :-?
4 Juin 2006 11:40:48

Kymic, en passant, c'est pas des antislash, ce sont des slash /. Les anti slash sont \ :) 
4 Juin 2006 11:44:48

T'inquiète, Kymic, tu as compris, on avait compris aussi..... ;-)
Tu n'aurais pas plutôt la clé de mon problème, par hasard ?????
Kissou
a c 145 L Programmation
4 Juin 2006 18:13:10

Au cas où, essaye de remplacer ton Header() par:
  1. <?
  2. die("<meta http-equiv=\"refresh\" content=\"0; URL=".$returnpage."\">");
  3. ?>

C'est une méthode un peu "bourrin" mais elle fonctionne :) 

Concernant l'erreur 405, c'est peut-être l'utilisation de mail() qui n'est pas bien faite, certains hébergeurs mettant des limitations particulières.
4 Juin 2006 19:04:21

alors de ce que j'ai lu sur le site php, la fonction header(Location:)  en http/1.1 doit revoyer sur une URL absolue, ton probleme est peut etre la.

essaie ca et dis moi ce que ca donne.

5 Juin 2006 17:09:43

"Ma" page PhP ci-dessus fonctionne aussi bien chez Hosteur, que sur Lycos en hébergement gratuit.
La seule différence entre les deux, ce sont les fameux "anti-slashes". Chez Hosteur il les faut et pour Lycos il ne les faut pas.

Mais chez ce p...sapristi d'hébergeur espagnol (Stratos, pour ne pas le nommer), rien ne semble marcher...

Je m'en vais de ce pas essayer la formule "bourrin" ci-dessus.
Vous tiens au courant
5 Juin 2006 18:51:19

Bon.... rien de nouveau.
:-?
5 Juin 2006 20:52:49

Fin de l'histoire, bête à pleurer.... Le pack d'hébergement souscrit ne contient pas de base MYSQL...... Le formulaire ne peut donc pas fonctionner.

Merci à tous pour votre aide.
Cordialement
Marie
5 Juin 2006 21:45:07

... du moins c'est ce que m'a expliqué STRATO.... mais :
Comment se fait-il que ce formulaire fonctionne parfaitement sur un hébergement gratuit de Lycos.... Il n'y a pas de bases de données avec un hébergement gratuit que je sache....

Il y aura donc peut-être une suite, Strato se penche (enfin) sur la question.
6 Juin 2006 18:31:53

Voici la réponse de Strato :
From: ServiceHotlineStratoAG <servicehotlinestratoag@strato-hotline.de>
To: moi@hotmail.fr <moi@hotmail.fr>
Subject: Strato Medien AG / Votre demande du 06.06.2006
Date: Tue, 6 Jun 2006 17:42:10 +0200 (CEST)
>
>Madame,
>
>Concernant le formulaire PHP sur le site
>\"(toto).com\", notre service technique m\'a
>confirmé que celui-ci ne fonctionne pas parce que le Pack de M. (toto) ne
>comprend pas des fonctions PHP. Comme je vous ai expliqué hier, en
>Espagne, nous proposons les fonctions PHP seulement à partir du Pack
>PowerWeb. Eventuellement, M. (toto) pourrait faire un Upgrade pour passer du
>EasyWeb au PowerWeb.
>
>Veuillez agréer nos salutations distinguées.

et ma réponse :

Monsieur,

Voulez-vous avoir l'obligeance de retransmettre aux responsables concernés, à la Direction de Strato, les propos suivants :

Je trouve votre procédé commercial déloyal pour deux raisons.

La première est qu'il est tout à fait anormal que, à prix égal, certains pays bénéficient de certaines prestations et pas d'autres pays, ce que, d'ailleurs, votre site Internet ne précise pas.

La seconde est que, avec votre hébergement "à des prix défiant toute concurrence" (pour reprendre vos propres termes), vous faites payer un hébergement qui n'offre même pas les possibilités de base d'un hébergement gratuit.

Cette manoeuvre est donc uniquement destinée à attirer le client avec un hébergement bon marché, sur lequel vous faites en sorte que rien ne fonctionne, pour "upgrader" son abonnement à la formule supérieure à 4€89 par mois, soit trois fois plus cher qu'ailleurs, relève de la publicité mensongère, voire de l'escroquerie.

La mauvaise volonté est en tous cas patente puisqu'il vous suffit de désactiver le "safe mode" pour permettre le fonctionnement des scripts PhP.

J'ignore ce que décideront mes correspondants espagnols, principalement l'Hôpital de San-Sebastian, au sujet d'éventuelles poursuites à votre égard, mais, pour ma part, croyez que je participerai activement à vous faire connaître autour de moi.

Salutations


>__________________________
6 Juin 2006 18:33:43

Quand je pense qu'il y a des gens qui se plaignent de Hosteur........................ :-?
a c 145 L Programmation
6 Juin 2006 19:45:11

Et ben :-(

Par contre, mauvaise nouvelle pour toi: il ne peut y avoir aucune poursuite: s'il n'est pas explicitement dit que les fonctions existent, rien n'empèche de les supprimer.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS