Bonjour à tous,
Alors voilà le problème :
Je suis en train de créer un petit formulaire de contact, pendant mes tests il marchait parfaitement, je dispose d'un hébergement web pour tester l'envoi de mail. Dans ma boîte de réception j'avais bien l'email dans mes nouveaux messages reçu à chaque fois que je faisais mes tests.
Mais pendant que je codais les conditions avec les messages du type "message envoyé" oui "veuillez remplir tout les champs" etc... je me suis rendu compte que l'envoi d'email ne se faisait plus, et maintenant impossible de corriger cela, le formulaire ne marche plus !!!
(j'ai essayé d'autres scripts de formulaire que j'ai envoyé sur mon hébergeur en ligne ça fonctionne parfaitement, donc ça vient du code à 100%).
J'aimerais un petit coup de pouce !Merci d'avance !
Il y a deux pages dans mon code :
index.php :
et la deuxième page post_contact.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
42
43
44
45
46
47
48
49
50
51
52
53
54 <?php session_start() ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>FORMULAIRE</title> </head> <body> <?php if(array_key_exists('errors', $_SESSION)): implode($_SESSION); echo $_SESSION['errors']; endif; ?> <?php if(array_key_exists('success', $_SESSION)): implode($_SESSION); echo "Votre message a bien été envoyé"; endif; ?> <form action="post_contact.php" method="POST"> <label id="inputname">Votre nom</label> <input type="text" id="inputname" name="name" value=" <?= isset($_SESSION['inputs']['name']) ? $_SESSION['inputs']['name'] : ''; ?> "> <label id="inputfirstname">Votre prénom</label> <input type="text" id="inputfirstname" name="firstname" value=" <?= isset($_SESSION['inputs']['firstname']) ? $_SESSION['inputs']['firstname'] : ''; ?> "> <label id="inputmail">Votre email</label> <input type="text" id="inputmail" name="email" value=" <?= isset($_SESSION['inputs']['email']) ? $_SESSION['inputs']['email'] : ''; ?> "> <label id="inputname">Votre message</label> <textarea id="inputtext" name="message" <?= isset($_SESSION['inputs']['message']) ? $_SESSION['inputs']['message'] : ''; ?>></textarea> <button type="submit">Envoyer</button> </form> </body> </html> <?php unset($_SESSION['errors']); unset($_SESSION['inputs']); unset($_SESSION['success']); ?>
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
42
43
44
45 <?php mail('exemple@gmail.com', 'sujet mail', $message, $headers); //paramètre mail, destinataire, sujet... $message = $_POST['message']; $headers = 'FROM: exemple@gmail.com'; $errors = []; if(!array_key_exists('name', $_POST) || $_POST['name'] == '') //verification des données entré par l'utilisateur { $errors = "Vous n'avez pas renseigné tout les champs"; } if(!array_key_exists('firstname', $_POST) || $_POST['firstname'] == '') { $errors = "Vous n'avez pas renseigné tout les champs"; } if(!array_key_exists('email', $_POST) || $_POST['email'] == '' || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $errors = "Vous n'avez pas renseigné un email valide"; } if(!array_key_exists('message', $_POST) || $_POST['message'] == '') { $errors = "Vous n'avez pas renseigné tout les champs"; } session_start(); if(!empty($errors)){ //si variable "errors" vide renvoyer vers la page index.php $_SESSION ['inputs'] = $_POST; header('location: index.php'); $_SESSION['errors'] = $errors; //stockage erreur utilisateur header('location: index.php'); //stockage erreur utilisateur } else { header('Location: index.php'); $_SESSION['success'] = 1; }
Partager