8791 sujets

Développement web côté serveur, CMS

Bonjour,

Voilà je ne connais pas beaucoup voir très peu le PHP et j'aimerai optimiser une page.

j'ai un formulaire de contact dont voici le code :

<?php get_header(); ?>

<?php
	// if form is submit
	if(isset($_POST['submit']))
	{
		$response = '<div class="notice">';
			
	if(isset($_POST['iQapTcha']) && empty($_POST['iQapTcha']) && isset($_SESSION['iQaptcha']) && $_SESSION['iQaptcha'])
	{
		$response .= 'Le formulaire peut être soumis <br/>';
		$_SESSION['iQpatcha'] = false;
				}
	else{
		$response .= 'Le formulaire ne peut être soumis <br/>';
	}
		$response .= '</div>';
			
		echo $response;
		}
?>
	
		<div id="formulaire">
		<h2><?php the_title(); ?></h2>
		<form action="<?php bloginfo('template_directory'); ?>/traitement-contact.php" method="post" id="formID">				
			
					<p>
             		<label for="nom">Nom (obligatoire)</label>
                	<input value="" class="validate[required,custom[onlyLetterSp]] text-input" type="text" name="nom" id="nom" />
                	</p>           		
             		<p>
             		<label for="Prénom">Prénom (obligatoire)</label>
                	<input value="" class="validate[required,custom[onlyLetterSp]] text-input" type="text" name="prenom" id="prenom" />
                	</p>
					<p>
					<label for="email">Email </label>
                	<input value="" class="validate[,custom[email]] text-input" type="text" name="email" id="email" />
                	</p>
					<p>
					<label for="msg">Message (obligatoire)</label>
                	<textarea class="validate[required] text-input" rows="2" cols="20" name="msg" id="msg" ></textarea>
                	</p>
                		
                	<div id="bouton">
                	<p>
           			<label for="reset"></label>
          			<input name="reset" class="reset" type="reset" value="Tout effacer"/>
           			</p>
			
					<div class="QapTcha"></div> 
					
           			<p>
           			<label for="submit"></label>
           			<input name="submit" class="submit" type="submit" value="Valider et envoyer"/>
           			</p>
           			</div> <!-- #bouton -->
			
			</div> <!-- #formulaire -->	

<?php get_footer(); ?>



Et celui ci fait le traitement par un fichier extérieur, ça marche très bien, mais j'aimerai intégrer le code du fichier "traitement-contact.php" qui est celui-ci :


<?php 
$nom=$_POST['nom'];
$prenom=$_POST['prenom']; 
$mail=$_POST['email']; 
$message=$_POST['msg']; 

/////voici la version Mine 
$headers = "MIME-Version: 1.0\r\n"; 

//////ici on détermine le mail en format text 
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$body .= "Content-type: text/plain; charset=iso-8859-1\r\n";  

////ici on détermine l'expediteur et l'adresse de réponse 
$headers .= "From: $prenom $nom <$mail>\r\nReply-to : $prenom $nom <$mail>\nX-Mailer [langue]HP"; 

$subject="Demande de renseignements"; 
$destinataire=""; //remplacez "webmaster@votre-site.com" par votre adresse e-mail
$body="Nom : $nom \n\nPrenom : $prenom \n\nEmail : $mail \n\nMessage : $message"; 
if (mail($destinataire,$subject,$body,$headers)) { 
echo "Votre message a été envoyé avec succés, vous recevrez une réponse sous peu.<br>"; 
} else { 
echo "Une erreur est survenue lors de l'envoi du formulaire."; 
} 
?></p>
<p align="center">Vous allez retournez au formulaire<br>
Si vous n'êtes pas redirigé au bout de 3 secondes cliquez <a href="http://www">ici 
</a></p>
<meta http-equiv="refresh" content="3; URL=http://www">



dans le même fichier, afin d'afficher les notifications de réussite où d'erreur sur la même page, pour par la suite ajouter un peu de Jquery pour mettre tout ça sous forme de fenêtre pop-up.


Si quelqu'un peu m'apporter un peu d'aide, c'est sympa. sinon je continuerai comme ça. Merci
Modifié par Chuck (30 Jan 2012 - 09:44)
De base, pour imbriquer 2 fichiers dans le genre, ce que je ferais :

- modification de l'URL d'action du formulaire pour qu'il revienne sur la page.
- ajout d'un input "hidden" (genre name="transmis" value="1").
- Tu ajoutes un test sur ton hidden, pour savoir s'il a été transmis.
- Tu crées un variable qui te servira de flag. Tu lui donnes une valeur. (genre $formulaireOK=1)
- S'il a été transmis, tu testes le formulaire, voir ce qui passe et ce qui passe pas. Si quelque chose passe pas, tu transformes ton flag en 0.
- Enfin, si ton flag est à 0 ou que ta variable issus du hidden est vide, tu affiches le formulaire ^^