Problème bête en html/php

Je n'arrive pas à relier :

<form method=POST action=formmail.php >
<table align="center">
<tr>
<td>Nom:</td>
<td><input type=text name=nom size=30 /></td>
</tr>
<tr>
<td>Prénom:</td>
<td><input name=prenom type=text size=30 /></td>
</tr>
<tr>
<td>Email:</td>
<td><input name=mail type=text size=30 /></td>
</tr>
<tr>
<td>Telephone:</td>
<td><input name=phone type=text size=30 /></td>
</tr>
<tr>
<td>Ville:</td>
<td><input type=text name=ville size=30 /></td>
</tr>
</table>
<p align="center">Message : </p>
<div align="center">
<p>
<textarea name=message cols=32 rows=6 ></textarea>
</p>
<p>
<input name="submit" type=submit value=Envoyer />
<input name="reset" type=reset value=Annuler />
<input type=hidden name=subject value=formmail />
<br />
</p>
</div>
</form></td>

ET SA:

<?php
//Pour définir chaque input du formulaire, ajouter le signe de dollar devant
$msg .= "Nom:\t$nom\n";
$msg .= "Prenom:\t$prenom\n";
$msg .= "E-Mail:\t$mail\n";
$msg .= "Telephone:\t$phone\n";
$msg .= "Ville:\t$ville\n";
$msg .= "Message:\t$message\n";

//Pourait continuer ainsi jusqu'à la fin du formulaire MODIFIER L'ADRESSE D'ENVOI
$TO = "email@domaine.com";
$h = "From: " . $TO;
$subject = "Prise de Contact";
$message = "";

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

mail($TO, $subject, $msg);

?>

<body>
<p align="center">Merci <? echo($prenom) ?> <? echo($nom) ?>, le message a bien été envoyé. <br />
Nous vous répondrons dans les plus brefs délais. </p>
</body>
</html>
Configuration: Windows XP Internet Explorer 7.0

11 réponses

  1. Bonjour,
    C'est plutôt (à tester) :
    $msg = "Nom:\t".$_POST['nom']."\n";
    $msg .= "Prenom:\t".$_POST['prenom']."\n";
    $msg .= "E-Mail:\t".$_POST['mail']."\n";
    $msg .= "Telephone:\t".$_POST['phone']."\n";
    $msg .= "Ville:\t".$_POST['ville']."\n";
    $msg .= "Message:\t".$_POST['message']."\n"; 
    1. Oui mais comment faire pour que quand je clique sur ''envoyer", la deuxieme page s'affiche???
      1. Ta deuxième page, elle doit s'appeler formmail.php. Elle contient ce code :
        <?php
        //Pour définir chaque input du formulaire, ajouter le signe de dollar devant
        $msg = "Nom:\t".$_POST['nom']."\n";
        $msg .= "Prenom:\t".$_POST['prenom']."\n";
        $msg .= "E-Mail:\t".$_POST['mail']."\n";
        $msg .= "Telephone:\t".$_POST['phone']."\n";
        $msg .= "Ville:\t".$_POST['ville']."\n";
        $msg .= "Message:\t".$_POST['message']."\n"; 
        
        
        //Pourait continuer ainsi jusqu'à la fin du formulaire MODIFIER L'ADRESSE D'ENVOI
        $TO = "email@domaine.com";
        $h = "From: " . $TO;
        $subject = "Prise de Contact";
        $message = "";
        
        while (list($key, $val) = each($HTTP_POST_VARS))
        {$message .= "$key : $val\n";}
        
        mail($TO, $subject, $msg);
        ?>
        <html>
        <body>
        <p align="center">Merci <?php echo $_POST['prenom']; ?> <?php echo $_POST['nom']; ?>, le message a bien été envoyé. <br />
        Nous vous répondrons dans les plus brefs délais. </p>
        </body>
        </html>

        Donc je comprends pas trop ton problème.
        1. Ah d'accord j'ai compris, la deuxième, je l'avais appellé formmail.htm
          1. Il y a des erreurs qui s'affichent ? J'ai pas testé, donc c'est possible.
            1. Salut

              Vérifie bien que ton fichier formmail.php soit bien dans le même dossier que ton fichier qui contient ton formulaire

              Bye
              1. Que l'on mette des guillements ou pas, ça ne change rien. C'est juste conventionnel. ^^ Mais c'est quand même conseillé.

                J'ai testé le code, ça fonctionne sauf pour $HTTP_POST_VARS, il faut mettre une valeur dedans $HTTP_POST_VARS['valeur']. Je sais pas ce que tu veux mettre dedans par contre.
                1. je reconnais ce problème auquel j'ai déja répondu tout à l'heure.

                  Pourquoi poster plusieurs fois un même PB sous des pseudos différents ?
                  1. Ce n'est pas la meme personne que vous avez vu tout à l'heure, j'ai juste repris son code et reposer la même question espérant avoir une réponse satisfaisante
                    1. ha excuses alors voiçi une copie de ma réponse:

                      Bon je t'ai rectifié pas mal de choses voir commentaires:
                      
                      il reste à completer le $headers, ça ne marchera pas comme ça suivant l'hebergeur, vas voir sur Google
                      
                      <?php
                      /*plusieurs erreurs
                       - si tu concatènes il faut partir de qq chose donc le premier doit etre un $msg = ....
                      	- il faut récupérer le svaleurs postées $_POST car selon la config de ton serveur tu ne peux pas avoir directement	
                      	$nom il faut faire $nom=$_POST['nom']
                      	- pour eviter une errur de php il faut verifier que le formulaire a été posté if(isset($_POST('submit']
                      */
                      //Pour définir chaque input du formulaire, ajouter le signe de dollar devant:: NON ça marche pas tout le temps si Register Global est à OFF !!
                      if(isset($_POST['submit'])){
                      	//recup des valeurs postées
                      	$nom=$_POST['nom']; //maintenant on met $_POST au lieu de $HTTP_POST_VARS
                      	$prenom=$_POST['prenom']; 
                      	$mail=$_POST['mail']; 
                      	$phone=$_POST['phone']; 
                      	$ville=$_POST['ville']; 
                      	$message=$_POST['message']; 
                      
                      
                      	$msg = "Nom:\t$nom\n"; 
                      	$msg .= "Prenom:\t$prenom\n";
                      	$msg .= "E-Mail:\t$mail\n";
                      	$msg .= "Telephone:\t$phone\n";
                      	$msg .= "Ville:\t$ville\n";
                      	$msg .= "Message:\t$message\n";
                      
                      
                      	$TO = "email@domaine.com";
                      	$headers  = "From: " . $TO;
                      	$subject = "Prise de Contact";
                      	//$message = ""; si tu mets ça ici ça écrase ce qui est dans ta variable $message ligne 16 !!!!!!
                      	/* POURQUOI CETTE BOUCLE TU ReCUPeRES D2JA LES VALEURS AVANT !
                      	while (list($key, $val) = each($HTTP_POST_VARS))
                      	{$message .= "$key : $val\n";}
                      	*/
                      	$env_mail=mail($TO, $subject, $msg,$headers);
                      	//messages
                      ?>
                      		<body>
                      	<p align="center">
                      <?php
                      	if($env_mail){
                      	echo "Merci $prenom $nom)  le message a bien &eacute;t&eacute; envoy&eacute;. <br />
                      	Nous vous r&eacute;pondrons dans les plus brefs d&eacute;lais. </p>";
                      	
                      	}else{
                      		echo "Pb envoi mail ";
                      	}
                      }
                      
                      ?>
                      </p>
                      	</body>
                      	</html>