Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/08/2007, 17h07   #1
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 0
Points : 0
Envoyer un message via MSN à Delgion
Par défaut Récupération des variables de formulaire

J'ai un problème avec mon code php lorsque j'envoie mon formulaire

Code HTML :
<form method="POST" name="contact" action="formphp.php" enctype="text/plain" onSubmit="return checkrequired(this)">

//le onSubmit fait référence à un javascript qui vérifie que mes champs ne sont pas vides//

le tout, suivi des champs : =>

Code HTML :
<input type="text" name="requiredNOM" size="50" /> etc....

la balise form est bien fermée à la fin. mon bouton envoyer fonctionne très bien et me redirige vers la page formphp.php

Voici le problème que je rencontre, il concerne mon code php:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
 $formTitre = $_POST['TITRE'];
 $formNom = $_POST['requiredNOM']; 
 $formPrenom = $_POST['requiredPRENOM']; 
 $formAdresse = $_POST['ADRESSE'];
 $formCommentaire = $_POST['COMMENTAIRE']; 
 // etc...
 
  $corps = "$formTitre $formPrenom $formNom vous contacte via votre formulaire.\n \n bonjour : je suis $formTitre $formNom , j'habite à $formAdresse \n message : \n $formCommentaire"; 
 
 echo $formNom
 echo $_POST['TITRE']; 
 
 mailto("monmail@mail.mail","formulaire de contact",$corps); 
 
header("contact.htm");
   ?>
de 1) l' echo n'affiche rien du tout
de 2) aucun mail n'est envoyé
de 3) je ne suis pas redirigé vers la page contact.htm
de 4) mon hébergeur accepte le php
de 5) ma page est en ligne.
de 6) ben je suis juste dans ma page www.monsite.com/formphp.php et là, à ma grande surprise, mon favicon est quand même affiché, alors que sur ma page php, je n'ai pas de code pour le mettre...

Est-ce que qqn pourrait m'aider à me dire ce que je fais de faux dans mon code?

Merci beaucoup!
Delgion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 17h25   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Déjà il te manque un point-virgule après echo $formNom.


__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 17h37   #3
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 0
Points : 0
Envoyer un message via MSN à Delgion
point-virgule remis à sa place.

tjrs rien de changé.

le echo n'était là que pour tester que mes variables soient bien récupérés par le formphp.php.
Delgion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 18h13   #4
Nouveau Membre du Club
 
Développeur informatique
Inscription : août 2007
Messages : 52
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2007
Messages : 52
Points : 37
Points : 37
Personnellement j'utilise la fonction mail (email si hébergé chez Free me semble t'il)

Par exemple :
Code :
mail($MailTo, $MailSubject, $MailBody, $MailExp)
Où :
- $MAilTo = Adresse à laquelle sera envoyé le contenu du formulaire
- $MailSubject = Texte qui va figurer dans le champ sujet ou objet du email
- $MailBody = Contenu du mail
- $MailExp = Adresse de l'expediteur


Je construit $MailExp de la façon suivante :
Code :
1
2
3
$email = $_POST['email'];      // Adresse recuperée
$from_email  = $email;        // Expediteur de l'email
$MailExp= "From: $from_email \n";
Il y a plus simple mais c'est tiré d'un script fonctionnel


Edit:
Si tu fais tourner ton script en local, il faut avoir regler le SMTP de Apache a prealable
wanagro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 18h38   #5
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 0
Points : 0
Envoyer un message via MSN à Delgion
j'ai copié/collé ta ligne de mail, en faisant attention de remplir les variables justes, de mettre des ";" à la fin de chaque ligne.

j'ai essayé de mettre mail ou email,

mais tjrs meme résultat.

et mon header ne fonctionne toujours pas non plus.

Mon script n'est pas en local, je l'ai mis en ligne, avec un hébergeur qui accepte du php
Delgion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 00h34   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
short_open_tag est bien sur On (voir la sortie de phpinfo ou éditez la source de la page avec votre navigateur) ? Arrangez-vous également pour ajouter en début de script, après avoir vérifier ce premier point :
Code :
1
2
error_reporting(E_ALL);
ini_set('display_errors', 1);
Et éventuellement un :
Mais la fonction header ne fonctionnera plus en sa présence.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 10h05   #7
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 0
Points : 0
Envoyer un message via MSN à Delgion
Ben ouais... du coup c'est nettement plus ... catastrophique, si j'ose dire...

Je vais voir avec mon hébergeur pour le short open tag.

sinon, ben j'ai enfin des messages d'erreur qui apparaissent

Citation:
Notice: Undefined index: TITRE in /var/www/vhosts/monsite.com/repertoirehebergeur/formphp.php on line 6

Notice: Undefined index: requiredNOM in /var/www/vhosts/monsite.com/repertoirehebergeur/formphp.php on line 7
et ca continue comme ca jusqu'à la fin:

Citation:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/monsite.com/repertoirehebergeur/formphp.php:6) in /var/www/vhosts/monsite.com/repertoirehebergeur/formphp.php on line 28
Delgion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 11h46   #8
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Sait-on jamais : quel hébergeur et quelle version de PHP ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 12h23   #9
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 0
Points : 0
Envoyer un message via MSN à Delgion
Aladin.ch et php 5.x

Mais voilà du nouveau!

Je leur ai envoyé un mail pour demander qui que quoi comment et dans leur réponse, ils m'ont envoyé un formulaire tout prêt, dont le php est:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
<?
 
$body="";
$post = array();
 
$site="www.monsite.ch";
$sitewww="www.$site";
 
$recipient= $_POST["recipient"];
$email=$_POST["email"];
$subject=$_POST["subject"];
$required=$_POST["required"];
$redirect=$_POST["redirect"];
 
$var1= $_POST["TITRE"];
 
 
$ip=$_SERVER["REMOTE_ADDR"];
$nav=$_SERVER["HTTP_USER_AGENT"];
$host=$_SERVER['HTTP_HOST'];
 
foreach ($_POST as $nomvar => $valvar) {
        $post[$nomvar] = $valvar;
        $body.="$nomvar: $valvar\n";
}
$body.="\n\nposte par: $ip, $nav, $host\n";
$body.="Autorise depuis=>: $site/$sitewww, to=>: $recipient, from=>: $email, requis=>: $required, redirection=>: $redirect\n";
 
 
$found=0;
if (($site==$host) or ($sitewww==$host)) $found=1; 
 
      if (!$found){
 
         print "sendmail.php -  appel depuis un site illegal - $site<br>";
         print "Modifier la variable \$ref dans le programme sendmail.php<br>";
         print "Mettez le nom de votre site.<br>Voici la config actuel de \$ref dans sendmail.php: ";
         print "$site,$sitewww<br>\n";
         exit;
      }
 
    if (strlen($email)>30) { print "error ln email"; exit; }
    if (strlen($subject)>128) { print "error ln subject"; exit; }
    if (strlen($body)>2048) { print "error ln body"; exit; }
 
 
if ($email) {
   $email = trim($email);
   if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {
      print "adresse <b>email $email</b> est invalide";
      exit;
   }
}
 
 
 
if ($required) {
  $missing_field_list="";
  $required = split(",",$required);
  for ($i=0;$i<count($required);$i++) {
     $string = trim($required[$i]);
     if(!$post["$string"]) {
         $missing_field_list .= "<b>$required[$i]</b><br>\n";
     }
   }
}
 
if ($missing_field_list) {
      print "Le(s) champ(s):<br>\n$missing_field_list est/sont obligatoire(s)";
      exit;
   }
 
 
mail("$recipient","$subject","$body","from:$email");
 
 
if (!$redirect) { 
print "<pre>$body</pre>"; exit; 
} else header("location: $redirect");
 
 
?>
à savoir que dans le formulaire, certaines variables sont définies:

Code :
1
2
3
4
5
 
 <input type="hidden" name="recipient" value="Monmail@chez.moi">
  <input type="hidden" name="redirect" value="page_de_redirection.htm">
  <input type="hidden" name="subject" value="Formulaire de contact">
  <input type="hidden" name="required" value="email">
le pire, c'est que ca fonctionne... à une seule exception près... je n'arrive pas à composer mon mail en lui demandant de faire le texte en insérant les variables au moment ou je veux : bonjour, je suis $var1 $var2 etc...
Delgion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 12h44   #10
Invité de passage
 
Inscription : août 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 6
Points : 0
Points : 0
Envoyer un message via MSN à Delgion
Personne n'a une idée pour composer le corps du mail avec des "bonjour, je suis $var1 [nom], je viens de $var2 [ville]?

ou devrais-je recomposer tout le code?
Delgion est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h36.


 
 
 
 
Partenaires

Hébergement Web