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 :

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']);
 
?>
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
 
<?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;
}