PHP /MYSQL [Résolu]

deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 12:54 - Dernière réponse : jordane45 19687 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 16 janvier 2018 Dernière intervention
- 18 juin 2017 à 16:55
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>
Afficher la suite 

17 réponses

Répondre au sujet
yg_be 4379 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 15 janvier 2018 Dernière intervention - 18 juin 2017 à 13:08
+1
Utile
4
bjr,
peut-être remplacer
<?php  $message;  ?>

par
<?php  echo $message;  ?>
Cette réponse vous a-t-elle aidé ?  
deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 13:22
ce message s'affiche après l'ajout du écho $message
yg_be 4379 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 15 janvier 2018 Dernière intervention - 18 juin 2017 à 13:29
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.
deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 13:31
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 )
yg_be 4379 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 15 janvier 2018 Dernière intervention > deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 13:37
et le deuxième echo?
Commenter la réponse de yg_be
jordane45 19687 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 16 janvier 2018 Dernière intervention - 18 juin 2017 à 12:58
0
Utile
4
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


deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 13:21
no pas besoin des quotes
yg_be 4379 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 15 janvier 2018 Dernière intervention > deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 13:36
pourquoi pas besoin?
yg_be 4379 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 15 janvier 2018 Dernière intervention > deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 15:30
la suggestion, "mettre des quote autour des variables", c'est de mettre des quote autour de tes variables $email, $sujet , etc...
yg_be 4379 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 15 janvier 2018 Dernière intervention - 18 juin 2017 à 15:20
deep_sea , peux-tu montrer ce que donne
echo $sql;
après avoir appliqué la suggestion #1?
Commenter la réponse de jordane45
yg_be 4379 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 15 janvier 2018 Dernière intervention - 18 juin 2017 à 13:39
0
Utile
2
suggestion, pour avoir l'heure en format 24h:
$date = date('Y-m-d H:i:s');
deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 13:51
$date = date('Y-m-d');
deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 14:02
$date = date('Y-m-d');

bref
lorsque j'actualise la page .php
le dernier message s'affiche par défault ERREUR
Commenter la réponse de yg_be
yg_be 4379 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 15 janvier 2018 Dernière intervention - 18 juin 2017 à 14:51
0
Utile
2
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é )"
deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 14:59
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.
deep_sea 158 Messages postés mardi 10 mai 2016Date d'inscription 20 décembre 2017 Dernière intervention - 18 juin 2017 à 15:26
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.
Commenter la réponse de yg_be
jordane45 19687 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 16 janvier 2018 Dernière intervention - 18 juin 2017 à 16:55
0
Utile
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');



Commenter la réponse de jordane45