Page 1 sur 1

Problème formulaire de contact

Posté : 20 janv. 2014, 15:45
par johnysay
Débutant en php, demande de l'aide sur le cas ci dessous:

                             <?php if($ok_mail=="true"){ ?> <!--************** ICI **************-->

                                  <!--Code du premier conteneur-->
                                  <div style = "width:600px; height:auto; margin:auto; margin-bottom:30px; position:absolute; background-color:#999; border-radius:14px">
                                     <div class="textreturn">Le message ci dessous a bien été transmis</div>
                                  <!--************** ICI **************-->
                                     <div class="textreturn"><tt><?php echo nl2br(stripslashes($corps));?></tt><!--recapitulatif du message--></div>
                                     <div class="textreturn">A bientot</div> 
                                  </div>
                                  <!--Fin du code du premier conteneur-->

                                  <?php }else{ ?> <!--************** ICI **************-->


			<form action='<?php echo $_SERVER['PHP_SELF'] ?>' method="post" name="Form">
 
 
 <section id="main">
           						<p class="contact">It&rsquo;s easy peasy to contact me, just fill this form. I promise to reply as soon as possible!<br />
							<em>Pour me contacter, rien de plus simple, il suffit de remplir ce formulaire.Je réponds dans un délai de 48/72h.</em>	 </p>


 							 <p class="input-block">
                                                     
                            		<label for="f_1"><span class="name"><strong> <br>
                             		 Name</strong> (required)   </span>  	  
                            		</label>
                         
                           		  <label for="f_2"><span class="mail"><strong>Email</strong> (required)</span></label>
                            		<label for="f_3"><span class="subject"><strong> Subject</strong></span></label>
                                    
            
 							 </p>

  							 <p class="input-block">   
                             
                        		<input type="text" name="f_1" style='<?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' value='<?php echo stripslashes($f_1);?>' />
                              
                        		<input type="email" name="f_2"style='<?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' value='<?php echo stripslashes($f_2);?>' />
                              
                          	<input type="text" name="f_3" style='<?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' value='<?php echo stripslashes($f_3);?>' />
                              
 							   </p>

  							<p class="input-block">
  
                            <label for="f_5"><span class="message"><strong>Your message</strong> (required)</span></label>
                            
				  			</p>
  							<p class="input-block">
                            
    		                    <textarea name="f_5" cols="40" rows="10" style='<?php if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;'><?php echo$f_5?> </textarea>
            
						  	</p>
 
 <!--************** ON AFFICHE LES MESSAGE D'ERREURS**************-->
<div id="messerror"><?php if($erreur){ ?><span class='texterror'> &nbsp;&nbsp;ERREUR, votre message n'a pas été transmis</span>
      <ul><?php echo$erreur?></ul><?php }?></div><!--************** ICI LES ELEMENTS ERRONES**************-->
</div>
 
 							 <p class="input-block">&nbsp;</p>
  
			                <input type="submit" name="Send" value="Send (Envoyer)"/>
  
</section>




Voila, mon formulaire de contact ne marche pas à cause de ce qui se trouve dans ces lignes.Ce que m'indique le fichier log error php.

Merci d'avance pour votre aide :)

Re: Problème formulaire de contact

Posté : 20 janv. 2014, 16:04
par moogli
salut,

c'est quoi le message d'erreur ?

on doit lire tout ton code non indenté ?

@+

Re: Problème formulaire de contact

Posté : 20 janv. 2014, 16:08
par johnysay
Marqueur - 20 janv. 2014 14:35:41
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: ok_mail in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 233
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: errf_1 in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 285
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: f_1 in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 285
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: errf_2 in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 287
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: f_2 in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 287
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: errf_3 in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 289
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: f_3 in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 289
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: errf_5 in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 306
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: f_5 in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 306
[20-Jan-2014 14:35:54 Europe/Berlin] PHP Notice: Undefined variable: erreur in /Applications/MAMP/htdocs/PortFolio2/contact.php on line 315

:D

Re: Problème formulaire de contact

Posté : 20 janv. 2014, 16:11
par synergie
Et tes variables, tu les récupères comment?

Re: Problème formulaire de contact

Posté : 20 janv. 2014, 16:13
par johnysay
Placé avant doctype:



<?php

// Ici on definit la couleur du texte de nouvelle saisie des champs obligatoire en cas de saisie invalide ou non presente
$color_font_warn="#000000";
// Cette fois on definit la couleur que prendront ces champs
$color_form_warn="#F66";

// On commence le code de soumission
if(isset($_POST['submit'])){
$erreur="";

// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}



// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éeaäö\ -]", "", $f_1)));
$f_2=strip_tags(trim($f_2));
$f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éeaäö\ -]", "", $f_4)));

///////////////////////////////////// Verification des champs obligatoires (pour notre exemple le f_1 ; f_2 (mail) et le f_5)///////////////////////////////////


if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ NOM est vide ou incomplet.</span>";
$errf_1=1;
}

if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ EMAIL est vide ou incomplet.</span>";
$errf_2=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'. //on oblige la presence d'un @
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_2)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail est erronee.</span>";
$errf_2=1;
}
}

if(strlen($f_5)<2){
$erreur.="<li><span class='txterror'>Le champ MESSAGE est vide ou incomplet.</span>";
$errf_5=1;
}

if($erreur==""){
	
	

// Création du message a envoyer sur votre boite mail

$titre="Message de votre site"; // sera affiché en tant qu'objet à la reception de votre message

$tete="From:http://mjdesign-v2.com/contact.php"; // indique la provenance du message (site ou page contenant le formulaire) ne mettez pas de @

//on inclus les champs du formulaire (par leur attribut Name)
$corps.="Nom : ".$f_1."\n";
$corps.="Email : ".$f_2."\n";
$corps.="Sujet : ".$f_3."\n";
$corps.="Message : ".$f_5."\n";
//on designe a quelle adresse envoyer le contenu du formulaire
if(mail("[email protected]", $titre, stripslashes($corps), $tete)){ // inserer votre adresse email ici à la place de "[email protected]"
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}

?>





Re: Problème formulaire de contact

Posté : 20 janv. 2014, 17:37
par moogli
ceci
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
est une hérésie.
Si l'auto déclaration des variables issues de formulaires a était supprimé c'est qu'il y a une raison : éviter les collisions et les failles possible que cela induit.

ensuite vu ton code, les variables ne sont pas toujours crées d'où tes erreurs.

par exemple ok_mail n'est crée que si la focntion mail ne retourne pas d'erreur.

du coup dans les autres (mail retourne false, ou une variable qui n'existe pas) cette variable n'existe pas et tu auras une erreur.

pour palier à cela tu peux utiliser les fonctions isset ou empty

@+

Re: Problème formulaire de contact

Posté : 20 janv. 2014, 17:52
par johnysay
Merci de ton aide, mais je suis débutant en php et n'excelle pas dans ce domaine...
Un exemple dans mon cas m'aiderai :)

Re: Problème formulaire de contact

Posté : 21 janv. 2014, 13:19
par johnysay
"du coup dans les autres (mail retourne false, ou une variable qui n'existe pas) cette variable n'existe pas et tu auras une erreur. "

Un exemple de code, car pour moi c'est du chinois :P

Re: Problème formulaire de contact

Posté : 21 janv. 2014, 13:28
par synergie
Beh, avec isset et empty...

Code : Tout sélectionner

//Si variable existe if(isset($variable)) { echo "variable existe" } else { "existe pas" }
Pareil avec empty sauf empty vérifie que le champ est vide ou non.

Re: Problème formulaire de contact

Posté : 21 janv. 2014, 18:02
par johnysay
Ne marche toujours pas ...

Re: Problème formulaire de contact

Posté : 21 janv. 2014, 22:05
par xTG
Ne marche toujours pas ...
Si cela ne change rien aux warnings c'est que tu l'utilises mal.
Montres nous ce que tu as fait, cela sera plus productif que cette réponse...