PHP /MYSQL

Résolu
deep_sea Messages postés 215 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'ai un problème avec cette requete , aucun message ne saffiche malgré il recupére tous les champs des POST

PHP:

<?php

include 'includes\db.php';
$message='';
print_r($_POST);
$date = date('Y-m-d h:i:s');
$commentaire = mysql_real_escape_string($_POST['Commentaire']);
$email=$_POST['Email'];
$sujet=$_POST['Sujet'];
$nom=$_POST['nom'];
if(isset($_POST['sent']))
{

$sql = "INSERT INTO `reclamation_user`(`Email`, `Sujet`, `Commentaire`, `date`, `nom`) VALUES ( $email, $sujet , $commentaire, $date , $nom )";

if ($conn->query($sql) === TRUE)
{
$message= '<div class="alert alert-info"><strong>Merci!</strong> votre message a bien été envoyé.</div>';
}

else
{
$message= '<div class="alert alert-danger"> <strong>Erreur!</strong> votre message n a pas été envoyé. veuillez réessayer plus tard.</div>';
}

}
else
{

$message= '<div class="alert alert-danger"><strong>Erreur!</strong></div>';
}
$conn->close();

?>


HTML
         <form role="form" action="" method="post">

<?php $message; ?>

<div class="form-group">
<label for="name" class="col-sm-2 control-label">Nom</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="nom" placeholder="Entrez ton nom" id="name">
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-2 control-label">Email</label>
<div class="col-sm-8">
<input type="email" class="form-control" name="Email" placeholder=" Entrez ton adresse Email " id="email">
</div>
</div>
<div class="form-group">
<label for="subject" class="col-sm-2 control-label">Sujet</label>
<div class="col-sm-8">
<input type="text" class="form-control" name="Sujet" placeholder="Entrez ton sujet" id="subject">
</div>
</div>
<div class="form-group">
<label for="comments" class="col-sm-2 control-label">Commentaire</label>
<div class="col-sm-8">
<textarea class="form-control" rows="10" name="Commentaire" style="resize:none;"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"></label>
<div class="col-sm-8">
<input type="submit" name="sent" value="Validé" id="vld" \>
</div></div> </form>

5 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bjr,
    peut-être remplacer
    <?php  $message;  ?>

    par
    <?php  echo $message;  ?>
    1
    1. deep_sea Messages postés 215 Statut Membre 1
       
      ce message s'affiche après l'ajout du écho $message
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu faire
      echo $sql
      ; juste avant
       if ($conn->query($sql) === TRUE).

      ensuite partager: ce qui est affiché par le print_r et les deux echo.
      0
    3. deep_sea Messages postés 215 Statut Membre 1
       
      Array ( [nom] => naziha [Email] => h_n@hotmail.fr [Sujet] => rec1 [Commentaire] => gdfgdf fgf [sent] => Validé )

      echo $sql;

      INSERT INTO `reclamation_user`(`Email`, `Sujet`, `Commentaire`, `date`, `nom`) VALUES ( h_n@hotmail.fr, rec1 , gdfgdf fgf, 2017-06-18 01:30:23 , naziha )
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > deep_sea Messages postés 215 Statut Membre
         
        et le deuxième echo?
        0
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour

     
     
    $sql = "INSERT INTO `reclamation_user`(`Email`, `Sujet`, `Commentaire`, `date`, `nom`) VALUES ( $email, $sujet , $commentaire, $date , $nom )";
    
    


    Tu dois mettre des quote autour des variables

    0
    1. deep_sea Messages postés 215 Statut Membre 1
       
      no pas besoin des quotes
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > deep_sea Messages postés 215 Statut Membre
         
        pourquoi pas besoin?
        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > deep_sea Messages postés 215 Statut Membre
         
        la suggestion, "mettre des quote autour des variables", c'est de mettre des quote autour de tes variables $email, $sujet , etc...
        0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      deep_sea , peux-tu montrer ce que donne
      echo $sql;
      après avoir appliqué la suggestion #1?
      0
  3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    suggestion, pour avoir l'heure en format 24h:
    $date = date('Y-m-d H:i:s');
    0
    1. deep_sea Messages postés 215 Statut Membre 1
       
      $date = date('Y-m-d');
      0
    2. deep_sea Messages postés 215 Statut Membre 1
       
      $date = date('Y-m-d');

      bref
      lorsque j'actualise la page .php
      le dernier message s'affiche par défault ERREUR
      0
  4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    le dernier message ("Erreur!") est envoyé dans le cas où $_POST['sent'] est absent.
    je te suggère d'ailleurs de clarifier le texte de ce message, pour éviter toute confusion.
    je suis donc surpris qu'il soit envoyé juste après que
    print_r($_POST);
    affiche "Array ( (...) [sent] => Validé )"
    0
    1. deep_sea Messages postés 215 Statut Membre 1
       
      c'est ça le probléme encore une fois
      Array ( [nom] => naziha [Email] => h_n@hotmail.fr [Sujet] => rec1 [Commentaire] => ghg hgfh gn [sent] => Validé )

      en plus ce message
      Erreur! votre message n a pas été envoyé. veuillez réessayer plus tard.
      0
    2. deep_sea Messages postés 215 Statut Membre 1
       
      Array ( [nom] => naziha [Email] => h_n@hotmail.fr [Sujet] => rec1 [Commentaire] => dfgfdh [sent] => Validé ) INSERT INTO `reclamation_user`(`Email`, `Sujet`, `Commentaire`, `date`, `nom`) VALUES ( h_n@hotmail.fr, rec1 , dfgfdh, 2017-06-18 , naziha )
      méme affichage en plus en plus ce message
      Erreur! votre message n a pas été envoyé. veuillez réessayer plus tard.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bon...

    IL y a pleins de soucis dans ton code ...
    Déjà pour la requête .. SI il faut les QUOTES autour des variables TEXTE.

    DOnc :
    INSERT INTO `reclamation_user`(`Email`, `Sujet`, `Commentaire`, `date`, `nom`) VALUES ( h_n@hotmail.fr, rec1 , dfgfdh, 2017-06-18 , naziha ) 
    

    Doit être écrit :
    INSERT INTO `reclamation_user`(`Email`, `Sujet`, `Commentaire`, `date`, `nom`) VALUES ( 'h_n@hotmail.fr', 'rec1' , 'dfgfdh', '2017-06-18' , 'naziha' ) 
    


    Entuite... tu sembles mélanger du mysql ... avec du mysqli !

    Par exemple ...ça c'est du mysqli (ou du pdo) stylé objet
    $conn->query($sql)
    


    et à côté de ça ... tu utilises aussi du :
    mysql_real_escape_string($_POST['Commentaire']);
    .

    Donc Soit tu utilises mysql (considéré comme obsolète ! ) soit tu utiilises PDO ou MYSQLI !
    A toi de nous le dire ... et à toi de choisir !!!!
    (En regardant tes précédentes questions... il semble que tu utilises mysqli ... donc commence par enlever (ou corriger) toutes les lignes de codes utilisant l'ancienne extension mysql)

    Pour finir; comme déjà recomandé dans une de tes précédente questions... place ceci au début de tes codes php :
    //Affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display-errors','on');


    0