Bonjour,

Voila je rencontre un petit problème avec mon code.
Je souhaite envoyer des mails avec la fonctions mail de php.
L'envoie de mail est réussit mais je ne reçois pas de mail.
Pourtant il y a 4 mois l'envoie de mail avec la fonction marchait parfaitement.
De plus les $_SESSION['flash'] ne s'affiche pas également.

<?php session_start();
require('inc/db.php');
$_SESSION['resa']=array();
if(!empty($_GET['id'])){
  $id = $_GET['id'];
}
$success = true;
if(!empty($_POST)){
  $_SESSION['resa']['nom']=htmlspecialchars($_POST['nom']);
  $_SESSION['resa']['prenom']=htmlspecialchars($_POST['prenom']);
  $_SESSION['resa']['mail']=htmlspecialchars($_POST['mail']);
  $_SESSION['resa']['tel']=htmlspecialchars($_POST['tel']);
  $_SESSION['resa']['date']=htmlspecialchars($_POST['date']);
  $_SESSION['resa']['heure']=htmlspecialchars($_POST['heure']);
  $_SESSION['resa']['nb_pers']=htmlspecialchars($_POST['nb_pers']);
  $_SESSION['resa']['info']=htmlspecialchars($_POST['info']);
  $nom=htmlspecialchars($_POST['nom']);
  $prenom=htmlspecialchars($_POST['prenom']);
  $mail=htmlspecialchars($_POST['mail']);
  $tel=htmlspecialchars($_POST['tel']);
  $date=htmlspecialchars($_POST['date']);
  $heure=htmlspecialchars($_POST['heure']);
  $nb_pers=htmlspecialchars($_POST['nb_pers']);
  $info=htmlspecialchars($_POST['info']);
  if(empty($_POST['heure']) ){
    $_SESSION['flash']['danger'] = '*Veuillez saisir une heure de réservation';
    $success = false;
  }
  if(empty($date)){
    $_SESSION['flash']['danger'] = 'Veuillez sélectionner une date de réservation valide';
    $success=false;
    $now = strtotime(date('d-m-Y'));
    $date_saisie = strtotime($_POST['date']);
    //var_dump($date_saisie);
    if($date_saisie<$now){
      $_SESSION['flash']['danger'] = 'Veuillez sélectionner une date de réservation valide';
      $success = false;
    }
  }
  if(empty($nom) && strlen($nom)<2){
    $_SESSION['flash']['danger'] = "Veuillez resaisir votre nom";
    $success=false;
  }
  if(empty($prenom) && strlen($prenom)<2){
    $_SESSION['flash']['danger'] = "Veuillez resaisir votre prenom";
    $success=false;
  }
  if(empty($mail) && filter_var($mail, FILTER_VALIDATE_EMAIL)){
    $_SESSION['flash']['danger'] = "Veuillez resaisir votre mail";
    $success=false;
  }
  if(empty($tel) && !ctype_digit($tel)){
    $_SESSION['flash']['danger'] = "Veuillez resaisir votre numéro de téléphone";
    $success=false;
  }

  if($success==true){
    $q='INSERT INTO CLIENT (nom, prenom, email, tel) VALUES (:val1, :val2, :val3, :val4)';
    $req = $bdd->prepare($q);
    $req -> execute([
      "val1" => $nom,
      "val2" => $prenom,
      "val3" => $mail,
      "val4" => $tel
    ]);
    $id_client = $bdd->lastInsertId();
    //echo $id_client;
    //$q = 'SELECT id FROM CLIENT';
    if(!empty($info)){
      $q='INSERT INTO RESERVATION (dates, heure, nb_pers, mail_client,info,id_client) VALUES (:val1, :val2, :val3, :val4,:val5,:val6)';
      $req = $bdd->prepare($q);
      $req->execute([
        "val1" => $date,
        "val2" => $heure,
        "val3" => $nb_pers,
        "val4" => $mail,
        "val5" => $info,
        "val6" => $id_client
      ]);
    } else {
      $q='INSERT INTO RESERVATION (dates, heure, nb_pers, mail_client, id_client) VALUES (:val1, :val2, :val3, :val4,:val5)';
      $req = $bdd->prepare($q);
      $req->execute([
        "val1" => $date,
        "val2" => $heure,
        "val3" => $nb_pers,
        "val4" => $mail,
        "val5" => $id_client
      ]);
    }
      $subject = 'Confirmation de votre compte';
      $message ="Bonjour votre compte a bien été enregistré.";
      $header = 'From : bio@gmail.com';
      $mail = "anais@gmail.com";
      mail($mail, $subject, $message, $header);
      $_SESSION['flash']['success'] = 'Un mail de confirmation vous a été envoyé pour valider votre compte';
      header('Location: reserver.php');
      exit();
  }
}

?>
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <script src="Bootstrap/jQuery/jquery-3.4.1.min.js"></script>
        <script src="Bootstrap/bootstrap-4.4.1-dist/js/bootstrap.min.js"></script>
        <link rel="stylesheet" type="text/css"href="Bootstrap/bootstrap-4.4.1-dist/css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="Bootstrap/style.css">
    <title>Réserver</title>
    <link rel="icon" type="image/png" href="Images/carpe.png" />
    <link rel="stylesheet" href="Bootstrap/style.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  </head>
  <body>
    <main class="">
      <header>
        <div class="">
          <?php include("inc/navbar.php"); ?>
        </div>
      </header>
      <h1>Réservation </h1>
      <form action="" method="post">
        <hr>
        <div class="d-flex justify-content-center">
          <div class="p-2 coordonnees">
            <h4>Coordonnées</h4>
            <br>
            <div class="form-row">
              <div class="p-2 col">
                <label for="">Nom: </label>
                <input value="<?php if(isset($_SESSION['resa']['nom'])){
                  echo $_SESSION['resa']['nom'];
                } ?>"type="text" name="nom"class="form-control " placeholder="Nom">
              </div>
              <div class="p-2 col">
                <label for="">Prénom :</label>
                <input value="<?php if(isset($_SESSION['resa']['prenom'])){
                  echo $_SESSION['resa']['prenom'];
                } ?>"type="text" name="prenom" class="form-control " placeholder="Prénom">
              </div>
            </div>
            <div class="form-row">
              <div class="col p-2">
                <label for="">Email :</label>
                <input value="<?php if(isset($_SESSION['resa']['mail'])){
                  echo $_SESSION['resa']['mail'];
                } ?>"type="text" name="mail" class="form-control" placeholder="Email">
              </div>
              <div class="col p-2">
                <label for="">Téléphone/Mobile : </label>
                <input value="<?php if(isset($_SESSION['resa']['tel'])){
                  echo $_SESSION['resa']['tel'];
                }else {
                  echo "06";
                } ?>"type="text" name="tel" class="form-control " placeholder="Téléphone/Mobile ">
              </div>
            </div>
          <br><br>
            <div class="p-2 reservation_date">
              <h4>Réserver </h4>
              <br>
              <div class="form-row">
                <div class="col p-2">
                  <label for="">Date :</label>
                  <input value="<?php if(isset($_SESSION['resa']['date'])){
                    echo $_SESSION['resa']['date'];
                  } ?>"type="date" name="date" class="form-control" placeholder="Date">
                </div>
                <div class="col p-2">
                  <label for="">Heure :</label>
                    <select name ="heure" id="inputState" class="form-control">
                      <option selected>12H00</option>
                      <option>12H30</option>
                      <option>13H00</option>
                      <option>13H30</option>
                      <option>14H00</option>
                      <option>14H30</option>
                      <option>18H30</option>
                      <option>19H00</option>
                      <option>19H30</option>
                      <option>20H00</option>
                      <option>20H30</option>
                      <option>21H00</option>
                      <option>21H30</option>
                      <option>22H00</option>
                    </select>
                </div>
                <div class="col p-2">
                  <label for="">Nombre de personne :</label>
                  <select name ="nb_pers" id="inputState" class="form-control">
                    <option selected>1</option>
                    <?php for($i=2;$i<16;$i++){
                      echo "<option>".$i ."</option>";
                    } ?>
                  </select>
                </div>
              </div>
            </div>
            <div class="form-row">
              <div class="col p-2">
                <br><br>
                <h4>Remarque(s) ou Information(s) supplémentaire(s)</h4><br>
                <label for="">Information(s) supplémentaire(s) :</label><br>
                <textarea value="<?php if(isset($_SESSION['resa']['info'])){
                  echo $_SESSION['resa']['info'];
                } ?>"name="info" class="form-control" rows="4" cols="80"></textarea>
              </div>
            </div>
          </div>
        </div>
        <div class="d-flex justify-content-center">
          <div class="p-2">
            <input type="submit" name="resa" class="btn btn-warning" value="Réserver">
          </div>
        </div>
      </form>
      <?php include('inc/footer.php'); ?>
    </main>
  </body>
</html>

Si quelqu'un a une idée de mon problème je suis prenante pour tout.
Merci !

1 réponse


Bonjour,
Déjà pas de htmlspecialchar sur les données entrée en BDD, c'est uniquement pour l'affichage.
Ensuite, comment tu sais que l'envoi est réussi vu que tu ne tests même pas ce que renvoie la fonction mail ? Ce n'est pas parce que tu as le message de succès, que cela est vrai
Enfin as-tu vérifier les logs de ton serveur ? Si local, as-tu rensigné le smtp de ton FAI ?

Tu peux aussi simplifier ton affectation par
$nom = $_SESSION...... = $_POST['nom'];