Bonjour à tous,

J'ai besoins d'aide pour un formulaire en PHP, je n'ai effectivement pas beaucoup d'expérience en PHP et il faut que je modifie un formulaire existant pour qu'il soit actif en PHP.

Voilà la code HTML correspondant au formulaire :

                	    		<form class="contact-form" action="php/contact.php" method="post" enctype="multipart/form-data">
                    	    		<!-- left side -->
                                    <div class="col-lg-6 col-md-6 col-xs-12">
                                    	<div class="form-row">
                    	   					<input type="text" class="contact-name" id="name" name="name" placeholder="votre nom" />
                    	    	    		<span class="user-icon"></span>
                    	  				</div>
                    	    			<div class="form-row">
                    	  					<input type="email" class="contact-email" id="email" name="email" placeholder="votre adresse email" />
                    	    	    		<span class="email-icon"></span>
                    	   				</div>
                                    </div>
                                    <!-- end left side -->
                                    
                                    <!-- right side -->
                                    <div class="col-lg-6 col-md-6 col-xs-12">
                                    	<div class="form-row">
                        	    			<textarea class="contact-message" id="message" name="message" placeholder="votre message"></textarea>
                        	    			<span class="note-icon"></span>
                       					</div>
                                    </div>
                                    <!-- end right side -->
                        			
                        			<!-- notif container (to show success or error notif) -->
                        			<div class="contact-notif col-lg-12 col-md-12 col-sm-12 col-xs-12">
                        			</div>
                        			<!-- end notif container -->
                        
                        			<!-- submit button -->
                        			<div class="form-row submit-button">
                        				<button class="button-regular submit-message" data-text="envoyer le message">envoyer le message</button>
                        			</div>
                        			<!-- submit button -->
                    			</form>


Et voilà le code PHP que j'ai repiqué sur un site en changeant certaine variable... Cependant rien n'a l'air de fonctionner...


    <?php
    /*
    	********************************************************************************************
    	CONFIGURATION
    	********************************************************************************************
    */
    // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
    $destinataire = 'tom.cantin@gmail.com';
     
    // copie ? (envoie une copie au visiteur)
    $copie = 'oui'; // 'oui' ou 'non'
     
    // Messages de confirmation du mail
    $message_envoye = "Votre message nous est bien parvenu !";
    $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
     
    // Messages d'erreur du formulaire
    $message_erreur_formulaire = "Vous devez d'abord <a href=\"index.html\">envoyer le formulaire</a>.";
    $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
     
    /*
    	********************************************************************************************
    	FIN DE LA CONFIGURATION
    	********************************************************************************************
    */
     
    // on teste si le formulaire a été soumis
    if (!isset($_POST['envoi']))
    {
    	// formulaire non envoyé
    	echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
    }
    else
    {
    	/*
    	 * cette fonction sert à nettoyer et enregistrer un texte
    	 */
    	function Rec($text)
    	{
    		$text = htmlspecialchars(trim($text), ENT_QUOTES);
    		if (1 === get_magic_quotes_gpc())
    		{
    			$text = stripslashes($text);
    		}
     
    		$text = nl2br($text);
    		return $text;
    	};
     
    	/*
    	 * Cette fonction sert à vérifier la syntaxe d'un email
    	 */
    	function IsEmail($email)
    	{
    		$value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(? [decu]? [decu]?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(? [decu]?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email);
    		return (($value === 0) || ($value === false)) ? false : true;
    	}
     
    	// formulaire envoyé, on récupère tous les champs.
    	$nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
    	$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
    	$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
     
    	// On va vérifier les variables et l'email ...
    	$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
     
    	if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
    	{
    		// les 4 variables sont remplies, on génère puis envoie le mail
    		$headers  = 'MIME-Version: 1.0' . "\r\n";
    		$headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" .
    				'Reply-To:'.$email. "\r\n" .
    				'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
    				'Content-Disposition: inline'. "\r\n" .
    				'Content-Transfer-Encoding: 7bit'." \r\n" .
    				'X-Mailer [langue]HP/'.phpversion();
    	
    		// envoyer une copie au visiteur ?
    		if ($copie == 'oui')
    		{
    			$cible = $destinataire.','.$email;
    		}
    		else
    		{
    			$cible = $destinataire;
    		};
     
    		// Remplacement de certains caractères spéciaux
    		$message = str_replace("&#039;","'",$message);
    		$message = str_replace("&#8217;","'",$message);
    		$message = str_replace("&quot;",'"',$message);
    		$message = str_replace('<br>','',$message);
    		$message = str_replace('<br />','',$message);
    		$message = str_replace("&lt;","<",$message);
    		$message = str_replace("&gt;",">",$message);
    		$message = str_replace("&amp;","&",$message);
     
    		// Envoi du mail
    		if (mail($cible, $objet, $message, $headers))
    		{
    			echo '<p>'.$message_envoye.'</p>'."\n";
    		}
    		else
    		{
    			echo '<p>'.$message_non_envoye.'</p>'."\n";
    		};
    	}
    	else
    	{
    		// une des 3 variables (ou plus) est vide ...
    		echo '<p>'.$message_formulaire_invalide.' <a href="index.html">Retour au formulaire</a></p>'."\n";
    	};
    }; // fin du if (!isset($_POST['envoi']))
    ?>


Merci pour votre future aide.
C'est normal, t'as un simple bouton dans ton formulaire (button), il ne déclenche rien.... Tu devrais avoir un input de type submit avec un nom.

Donc rien ne se passe Smiley cligne C'est juste un problème de compréhension du mécanisme.


<form class="contact-form" action="php/contact.php" method="post" enctype="application/x-www-form-urlencoded">

<input type="text" class="contact-name" id="name" name="name" placeholder="votre nom" />
<input type="email" class="contact-email" id="email" name="email" placeholder="votre adresse email" />
<textarea class="contact-message" id="message" name="message" placeholder="votre message"></textarea>
<!--<button class="button-regular submit-message" data-text="envoyer le message">envoyer le message</button>-->
<!-- le nom que ton script attend [cligne] -->
<input type="submit" name="envoi" value="envoyer le message">
</form>



<?php
if(isset($_POST['envoi'])){
// je traite les données du formulaire

}
?>

Modifié par semantic (20 Jun 2015 - 12:28)