Contexte : un site one page très basique
problème : le formulaire de contact

Dans le fichier index.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<div>
    <h2>Contactez-nous</h2>
    <p>Pour toute question, n'hésitez pas à nous contacter !<br/>
    Nous vous répondrons aussi vite que possible...</p>
    <form method="post" action="traitement.php">
        <p>
            <label for="nom">Nom : </label><br/>
            <input id="nom" type="text" name="nom" value="<?php if(isset($nom)) echo $nom; ?>" placeholder="Votre nom"/>
            <span class="error-message"><?php if(isset($erreurnom)) echo $erreurnom ;?><br/>
            <label for="prenom">Prénom : </label><br/>
            <input id="prenom" type="text" name="prenom" value="<?php if(isset($prenom)) echo $prenom; ?>" placeholder="Votre prénom"/>
            <span class="error-message"><?php if(isset($erreurprenom)) echo $erreurprenom ;?>
            <br/>
            <label for="email">Email : </label><br/>
            <input id="email" type="email" name="email"  value="<?php if(isset($email)) echo $email; ?>"  placeholder="Votre adresse email"/>
            <span class="error-message"><?php if(isset($erreuremail)) echo $erreuremail ;?><br/>
            <label for="message">Message :</label><br/>
            <textarea name="message" id="message"><?php if(isset($message)) echo $message; ?>" </textarea>
            <span class="error-message"><?php if(isset($erreurmessage)) echo $erreurmessage ;?><br/>
            <input type="submit" value="Envoyer" />
<?php
if(isset($erreur)){ echo "<p>$erreur</p>"; }
?>
        </p>
    </form>
</div>
Dans le fichier traitement.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
<?php
if(!empty($_POST)){
	extract($_POST);
	$valid = true;
	if(empty($nom)){
		$valid=false;
		$erreurnom="Vous n'avez pas rempli votre nom";
	}
	if(!preg_match("/^[a-z0-9\-_.]+-_.]+@[a-z0-9\-_.]+\-_.]+\.[a-z]{2,3}$/i",$email)){
		$valid=false;
		$erreuremail="Votre email n'est pas valide";
	}
	if(empty($prenom)){
		$valid=false;
		$erreurprenom="Vous n'avez pas rempli votre prenom";
	}
	if(empty($email)){
		$valid=false;
		$erreuremail="Vous n'avez pas rempli votre email";
	}
	if(empty($message)){
		$valid=false;
		$erreurmessage="Vous n'avez pas rempli votre message";
	}
 
	if($valid){
		$to = "zbim@aol.com";
		$sujet = $prenom." ".$nom." nous écrit depuis StudioT";
		if(mail($to, $sujet, $message)){
			$erreur= "Votre message nous est bien parvenu";
			unset($nom);
			unset($prenom);
			unset($email);
			unset($message);		}
		else{
			$erreur = "Votre mail n'a pas pu être délivré";
		}
	}
}
?>
Je suis actuellement un tuto;
à ce stade, je devrai avoir les messages d'erreurs généré par le php après vérification ou même l'envoi de mail.
A la place, je n'ai qu'une page blanche (quand je la ré-actualise, il me demande si je veux ré-envoyer le formulaire, j'imagine qu'il sait qd meme plus ou moins de quoi ça parle).

Auriez-vous une idée ?

D'autres questions se posent :
- quitte à avoir mon index en php, ne pourrais-je pas mettre tous la vérification en php dans cet index (au début), et faire pointer action vers index.php (càd la meme page) ?
- Dans le cas où la vérification de mes champs est faite en PHP (+ les echo d'erreurs, la conservation des champs remplis par l'utilisateur, etc) qu'apporterai de plus une validation en JS ?