Pb envoi mail php html javascrip

Bonjour,

j'ai un probleme dans mon formulaire les saisie de controle se font correctement mais
il y a un petit probléme au niveau de la validation dans le code php.
je ne trouve pas la solution.

il m'affiche comme erreur
Notice: Undefined index: validation in C:\wamp\www\contact H\contact.php on line 110

voici mon code

body>

        <script type="text/javascript">
        <!-- 
            function ValidFormMail() {
                var OkPourSubmit = "OK";
                var obligatoire1 = "Attention, ";
                var obligatoire2 = " ne peut pas \352tre vide !";
                var invalide = " est invalide !";
                 if (document.envoi_mail.champ1.value == "" ) {
                    alert(obligatoire1 + "le nom" + obligatoire2);
                    OkPourSubmit = "NOK";
                    document.envoi_mail.champ1.select();
				} else if ((document.envoi_mail.champ2.value.indexOf("@",1) < -1) || (document.envoi_mail.champ2.value.length <2) || (document.envoi_mail.champ2.value.indexOf(".",document.envoi_mail.champ2.value.indexOf("@",1)+1) < 1)) {
                    alert(obligatoire1 + "l'adresse mail" + invalide);
                    OkPourSubmit = "NOK";
                    document.envoi_mail.champ2.select();
				} else if (document.envoi_mail.champ3.value == "" ) {
                    alert(obligatoire1 + "l'objet" + obligatoire2);
                    OkPourSubmit = "NOK";
                    document.envoi_mail.champ3.select();
				} else if (document.envoi_mail.champ4.value == "" ) {
                    alert(obligatoire1 + "le message" + obligatoire2);
                    OkPourSubmit = "NOK";
                    document.envoi_mail.champ4.select();
                }
                if (OkPourSubmit == "OK") {
                    document.envoi_mail.validation.value = "OK";
                    document.envoi_mail.submit();
                }
            }
        // -->
        </script>



<div id="ensemble">

<!--en tête -->
	<div id="en_tete">
  
    
    
    </div>


<!--Le corps -->
 
<div id="corps">
<div id="Gestion">
  <h3><FONT><center>Contacter MS Sport Consulting</center></FONT></h3>
 
  

   <span3>
       <FONT>Votre <b>organisation sportive</b> a besoin de nos servives? </FONT></span3><br/>
      <span3><FONT>Demandez un rendez vous! </FONT></span3>
     
</div>


<div id="container">
	
	
 <form id="form1" name="envoi_mail" action=""  method="POST" >
	
	<fieldset><legend>Formulaire de contact</legend>
			<p class="first">
            
				<label for="name">Nom</label>
				<input type="text" name="Nom" id="champ1" size="30" tabindex="1" value=""/>
                
			</p>
			<p>
				<label for="email">Email</label>
				<input type="text" name="E-Mail" id="champ2"  size="30" tabindex="2" value=""/>
                 
			</p>
			<p>
				<label for="objet">Objet</label>
				<input type="text" name="Objet" id="champ3" size="30"tabindex="3" value=""  />
                 
					</p>			
				</fieldset>
				<fieldset>																			
					<p>
						<label for="message">Message</label>
                        <textarea name="message" id="champ4" cols="30" rows="10" tabindex="4" value=""></textarea>
					</p>								
				</fieldset>					
	            <input type="Button" name="btn_envoi_mail" value="Envoyer" onclick="ValidFormMail();" />
           	
							
			</form>	
 <?php
 PROBLEME ICI     if ( $_POST['validation'] == "OK" ) {
                            $adresseAEnvoyer = "s_sniper74@hotmail.com";
                            $titreMessage = $_POST['sujet'];
                            $contenuMessage = "Ceci est un message depuis le formulaire : \n\n" . 
                                            "Nom : " . $_POST['champ1'] . "\n\n" .
											"Email : " . $_POST['champ2'] . "\n\n" .
											"Objet : " . $_POST['champ3'] . "\n\n" .
											"Message : " . $_POST['champ4'] . "\n\n" .
                            $header ='From: "' . $_POST['champ1'] . '"<' . $_POST['champ2'] . '>' . "\n";
                            if(mail($adresseAEnvoyer, $titreMessage , $contenuMessage , $header)) {
                                echo '<script type="text/javascript" language="javascript">
                                        <!--//
                                            alert("Le message a bien \351t\351 envoy\351 =)");
                                            document.location.href="Contact.php";
                                        //-->
                                    </script>';
                            } else {
                                echo 'Le message n\'a pu \352tre envoy\351';
                            } 
                        }
                ?>
       
	    


		
		</div>
   

</div>
</div>


25 réponses

Résumé de la discussion

Le fil porte sur une erreur Notice: Undefined index: validation lors de la validation côté PHP d'un formulaire, due à l'absence d'un champ nommé validation dans le formulaire. Le code JS affecte document.envoi_mail.validation à OK mais aucun input ne porte ce nom, et PHP lit donc $_POST['validation'] sans l'exister, provoquant l'erreur. Des incohérences d'appellation entre HTML et PHP aggravent le problème: HTML utilise Nom, E-Mail, Objet et message, tandis que PHP attend champ1, champ2, champ3 et champ4, ou une variable validation. Pour corriger, ajouter un champ caché validation ou aligner les noms des champs et tester avec isset pour éviter les notices.

Bobot (l’IA à votre service)
  1. Bonjour,

    Je vois que tu utilises wamp !

    As tu activer la fonction mail ?

    Voila un tuto pour le faire : http://www.techpaf.fr/programmation/comment-activer-lenvoie-de-mail-sous-wamp/

    Bonne journée
    @++
    1. C'est en anglais et l'anglais j'ai pas un top niveau.
      Mais bon pas grave je m'y mettrais dessus un jour, pour apprendre a faire des bonne animation.

      merci xamurai a bientot
      1. Je voulais faire tourné un logo sur lui meme juste les lettre comment doije faire cette animation.

        Aurais tu un tuto sous la mains qui puisse faire sa.
        Je pensse que c'est avec eléments 3D mais je ne suis pas sur
        moi je travail avec cs3.

        Autre chose que j'aimerais bien réalisé:

        J'ai par exemple une voiture et je souhaire lui faire passé un voile qui ferais le contour de la voiture, le faire sur la voiture comme sur du texte regarde sur site il y a les 2 animations que j'aimerais bien faire.

        http://www.slslimousine.ch/location.php
        1. dacord merci de tes réponses.

          je serais la prochaine fois, que faire un site full flash c'est fini.
          1. premiere question oui, flash est bien pour le visuel et l'animation. rien de plus.

            2) oui, tu peux integrer un fichier swf dan un autre.
            1. a ouéé sa tombe bien tu va pouvoir répondre a mes questions alors.

              C'est pro sa se sent ce que ta fait abode air je conne pas trop.

              j'ai commencé flash y a pas trés lontemp.

              Dit moi enfette j'ai crée un site tous en flash, après l'avoir presque fini sa fait un mois que je suis dessus je me suis renseigné et j'ai appris que le réferencement n'etais pas super.

              Que mon conseillerai tu?

              Changé tous mes travaux flash en html, est ce que sa met du temp?

              Autre question incorporé un diparama déja tous concu dans un calque flash est ce possible ?

              Merci a toi.
              1. moi je suis sur du flash aussi je debute tu conné sa aussi ?
                ou t'est plus php etc ?
                1. oui je comprend mieux du if then else que tout ce qui existe sur terre. :)
                  mais pas la grosse tête non plus... j'apprends aussi tous les jours en aidant les autres.
                  1. loool.

                    tu dois avoir beaucoup d'année derrière toi surtout.
                    et d'aimer sa.

                    ;-)
                    1. en lalal quelle fote bete,
                      faute d'amateur sa.

                      mais j'avais tp les yeux dessu que j'y voyais plus rien.

                      Franchement merci xamurai ta lair vrément de géré
                      je sais pas depuis combien de temp tu pratique la programmation
                      mais en tous cas merci bocoup.
                      et en plus taide beaucoup de gens j'ai pu voir.

                      ;-)))))))
                      1. observe bien ton code, tu veras toi meme les erreurs.
                        tu essayes de recupérer $_POST[id];

                        au lieu de $_POST[nom];
                        1. oui je sais mais je te lest envoyé kan meme lol

                          mais je t'est envoyé tous le code de ma page actuelle juste avant.

                          merciii
                          1. http://localhost/contact%20HK/contact.php

                            et voici l'url de la page.
                            1. lol je ne peut pas acceder a ton localhost :D
                            2. essaye de prendre tous les query comme precedemment puis verifie leurs valeurs avec echo
                          2. Enfette tous le code ce trouve sur une et meme page mon html et mon php.

                            je t'envoie toutes la page :

                            <body>
                            
                                    <script type="text/javascript">
                                    <!-- 
                                        function ValidFormMail() {
                                            var OkPourSubmit = "OK";
                                            var obligatoire1 = "Attention, ";
                                            var obligatoire2 = " ne peut pas \352tre vide !";
                                            var invalide = " est invalide !";
                                             if (document.envoi_mail.champ1.value == "" ) {
                                                alert(obligatoire1 + "le nom" + obligatoire2);
                                                OkPourSubmit = "NOK";
                                                document.envoi_mail.champ1.select();
                            				} else if ((document.envoi_mail.champ2.value.indexOf("@",1) < -1) || (document.envoi_mail.champ2.value.length <2) || (document.envoi_mail.champ2.value.indexOf(".",document.envoi_mail.champ2.value.indexOf("@",1)+1) < 1)) {
                                                alert(obligatoire1 + "l'adresse mail" + invalide);
                                                OkPourSubmit = "NOK";
                                                document.envoi_mail.champ2.select();
                            				} else if (document.envoi_mail.champ3.value == "" ) {
                                                alert(obligatoire1 + "l'objet" + obligatoire2);
                                                OkPourSubmit = "NOK";
                                                document.envoi_mail.champ3.select();
                            				} else if (document.envoi_mail.champ4.value == "" ) {
                                                alert(obligatoire1 + "le message" + obligatoire2);
                                                OkPourSubmit = "NOK";
                                                document.envoi_mail.champ4.select();
                                            }
                                            if (OkPourSubmit == "OK") {
                                                document.envoi_mail.validation.value = "OK";
                                                document.envoi_mail.submit();
                                            }
                                        }
                                    // -->
                                    </script>
                            
                            
                            
                            <div id="ensemble">
                            
                            <!--en tête -->
                            	<div id="en_tete">
                              
                                
                                
                                </div>
                            
                            
                            <!--Le corps -->
                             
                            <div id="corps">
                            <div id="Gestion">
                              <h3><FONT><center>Contacter MS Sport Consulting</center></FONT></h3>
                             
                              
                            
                               <span3>
                                   <FONT>Votre <b>organisation sportive</b> a besoin de nos servives? </FONT></span3><br/>
                                  <span3><FONT>Demandez un rendez vous! </FONT></span3>
                                 
                            </div>
                            
                            
                            <div id="container">
                            	
                            	
                             <form id="form1" name="envoi_mail" action=""  method="POST" >
                            	<input type="hidden" name="validation"  value="NOK" />
                            	<fieldset><legend>Formulaire de contact</legend>
                            			<p class="first">
                                        
                            				<label for="name">Nom</label>
                            				<input type="text" name="Nom" id="champ1" size="30" tabindex="1" value=""/>
                                            
                            			</p>
                            			<p>
                            				<label for="email">Email</label>
                            				<input type="text" name="E-Mail" id="champ2"  size="30" tabindex="2" value=""/>
                                             
                            			</p>
                            			<p>
                            				<label for="objet">Objet</label>
                            				<input type="text" name="Objet" id="champ3" size="30"tabindex="3" value=""  />
                                             
                            					</p>			
                            				</fieldset>
                            				<fieldset>																			
                            					<p>
                            						<label for="message">Message</label>
                                                    <textarea name="message" id="champ4" cols="30" rows="10" tabindex="4" value=""></textarea>
                            					</p>								
                            				</fieldset>					
                            	            <input type="Button" name="btn_envoi_mail" value="Envoyer" onclick="ValidFormMail();" />
                                       	
                            							
                            			</form>	
                             <?php
                             $v = ((isset($_REQUEST['validation'])  &&  $_REQUEST['validation'] != "")? $_REQUEST['validation'] : "");
                            							if($v == "OK") {
                                                        $adresseAEnvoyer = "s_sni@hotmail.com";
                                                        $titreMessage = $_POST['sujet'];
                                                        $contenuMessage = "Ceci est un message depuis le formulaire : \n\n" . 
                                                                        "Nom : " . $_POST['champ1'] . "\n\n" .
                            											"Email : " . $_POST['champ2'] . "\n\n" .
                            											"Objet : " . $_POST['champ3'] . "\n\n" .
                            											"Message : " . $_POST['champ4'] . "\n\n" .
                                                        $header ='From: "' . $_POST['champ1'] . '"<' . $_POST['champ2'] . '>' . "\n";
                                                        if(mail($adresseAEnvoyer, $titreMessage , $contenuMessage , $header)) {
                                                            echo '<script type="text/javascript" language="javascript">
                                                                    <!--//
                                                                        alert("Le message a bien \351t\351 envoy\351 =)");
                                                                        document.location.href="Contact.php";
                                                                    //-->
                                                                </script>';
                                                        } else {
                                                            echo 'Le message n\'a pu \352tre envoy\351';
                                                        } 
                                                    }
                            
                              
                            
                            
                                                   
                                                        
                                            ?>
                                   
                            	    
                            
                            
                            		
                            		</div>
                               
                            
                            </div>
                            </div>
                            </body>
                            </html>
                             
                            1. MERCI

                              Alors je n'ai plus de message d'erreur mais toujours pas d'informations dans le mail les valeur des variable ne sont apparemment pas récupéré.

                              <?php
                               $v = ((isset($_REQUEST['validation'])  &&  $_REQUEST['validation'] != "")? $_REQUEST['validation'] : "");
                              							if($v == "OK") {
                                                          $adresseAEnvoyer = "s_sniper@hotmail.com";
                                                          $titreMessage = $_POST['sujet'];
                                                          $contenuMessage = "Ceci est un message depuis le formulaire : \n\n" . 
                                                                          "Nom : " . $_POST['champ1'] . "\n\n" .
                              											"Email : " . $_POST['champ2'] . "\n\n" .
                              											"Objet : " . $_POST['champ3'] . "\n\n" .
                              											"Message : " . $_POST['champ4'] . "\n\n" .
                                                          $header ='From: "' . $_POST['champ1'] . '"<' . $_POST['champ2'] . '>' . "\n";
                                                          if(mail($adresseAEnvoyer, $titreMessage , $contenuMessage , $header)) {
                                                              echo '<script type="text/javascript" language="javascript">
                                                                      <!--//
                                                                          alert("Le message a bien \351t\351 envoy\351 =)");
                                                                          document.location.href="Contact.php";
                                                                      //-->
                                                                  </script>';
                                                          } else {
                                                              echo 'Le message n\'a pu \352tre envoy\351';
                                                          } 
                                                      }
                              
                                      ?>
                                     
                              1. la meilleure maniere de prendre les query sans erreurs en php c'est:

                                 $v = ((isset($_REQUEST['validation'])  &&  $_REQUEST['validation'] != "")? $_REQUEST['validation'] : "");
                                
                                ...
                                
                                if($v == "OK")
                                ...
                                
                                • 1
                                • 2