Récupération des données du formulaire

Résolu
Bonjour mon code PHP que voici ne ramène aucune erreur mais n'envoi pas les données de mon formulaire dans la base de données mysql .....quelqu'un pourrait-il m'aider ?
<? php

if(isset($_POST['send']))
{
 $Envoi=htmlentities(trim($_POST['convEnvoi']));
 $Recevoir=htmlentities(trim($_POST['convRecu']));
 $Montant=htmlentities(trim($_POST['montant']));
 $Calculer=htmlentities(trim($_POST['conversion']));
 $Adresse=htmlentities(trim($_POST['adresse']));
 $Nom=htmlentities(trim($_POST['convNom']));
 $Telephone=htmlentities(trim($_POST['telephone']));
 $Email=htmlentities(trim($_POST['convEmail']));
 
 if (empty($_POST['convEnvoi'])||empty($_POST['convRecu'])||empty($_POST['montant'])||empty($_POST['conversion'])||empty($_POST['convNom'])||empty($_POST['telephone'])||empty($_POST['convEmail'])) 
 {
  echo "Veuillez remplir tous les champs!";
 }
  else
 {
  $evoq = new PDO('mysql:host=localhost;dbname=echangeroom;charset=utf8', 'root', '');

    print_r($evoq);
  $Envoi=$_POST['convEnvoi'];
  $Recevoir=$_POST['convRecu'];
  $Montant=$_POST['montant'];
  $Calculer=$_POST['conversion'];
   $Adresse=$_POST['adresse'];
   $Nom=$_POST['convNom'];
        $Telephone=$_POST['telephone'];
        $Email=$_POST['convEmail'];
       
  $req=$evoq->prepare('INSERT INTO tabclients(convEnvoi,convRecu,montant,conversion,adresse,convNom,telephone,convEmail) VALUES(:convEnvoi,:convRecu,:montant,:conversion,:adresse,:convNom,:telephone,:convEmail)');
        $req->execute(array(
      'convEnvoi' => $Envoi,
      'convRecu' => $Recevoir,
      'montant' => $Montant,
      'conversion' => $Calculer,
      'adresse' => $Adresse,
      'convNom' => $Nom,
      'telephone' => $Telephone,
      'convEmail' => $Email

       ));
    echo "Votre requette a bien été enregistré!";
 }
}
  ?>

7 réponses

  1. Merci pour ton aide, a vraie dire je suis encore nouveau en php et c'est un peut floue encore avec le renvoi des erreurs. Merci d'être plus précis...
    0
    1. Modérateur
      Bonjour,

      Il est difficile d'être plus précis que ce qui est marqué dans le lien que Jee-pee t'a donné !
      Il suffit de lire et d'appliquer ce qui est marqué !

      Je précise également que les fonctions htmlspecialchars, htmlentities ... ne servent qu'à de l'affichage et en aucun cas pour le "traitement" des données avant de faire l'enregistrement en BDD.
      Surtout que tu utilises PDO et les requêtes préparées... ce qui est suffisant pour "sécuriser" tes requêtes.

      En complément du lien proposée par Jee-pee, je t'invite également à lire et à appliquer les conseils donnés dans ce lien :
      https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

      .
      0
  2. Bonjour,

    Le code tel que donné plantera immédiatement, tu as mal ouvert la balise PHP :
    <? php

    Il faut enlever l'espace entre
    <?
    et
    php
    .

    Ensuite tu pourras activer les messages d'erreur en suivant le lien donné par jee pee.

    En complément, je te suggère FORTEMENT d'activer la vérification automatique des erreurs dans ton éditeur de texte, pour voir immédiatement ce genre d'erreurs.
    0
    1. l' espacement a bien été enlevé les messages d'erreur bien activés, aucune erreur renvoyer cependant aucune récupération dans la bases-de-données introduction base de données] ... a l'aide
      0
      1. Modérateur
        Montres nous ton code "modifié" qu'on puisse voir ca que tu as éventuellement oublié.
        0
    2. As-tu activé les erreurs PDO ?

      $evoq = new PDO('mysql:host=localhost;dbname=echangeroom;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
      0
      1. je vois une erreur sur la ligne 46 comme suit
        ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1364 Field 'id_clients' doesn't have a default value on line 46

        voici aussi le tableau sur mysql en photo



        <?php
        error_reporting(E_ALL);
        ini_set('display_errors', TRUE);
        ini_set('display_startup_errors', TRUE);
        if(isset($_POST['send']))
        {
        $Envoi=htmlentities(trim($_POST['convEnvoi']));
        $Recevoir=htmlentities(trim($_POST['convRecu']));
        $Montant=htmlentities(trim($_POST['montant']));
        $Calculer=htmlentities(trim($_POST['conversion']));
        $Adresse=htmlentities(trim($_POST['adresse']));
        $Nom=htmlentities(trim($_POST['convNom']));
        $Telephone=htmlentities(trim($_POST['telephone']));
        $Email=htmlentities(trim($_POST['convEmail']));

        if (empty($_POST['convEnvoi'])||empty($_POST['convRecu'])||empty($_POST['montant'])||empty($_POST['conversion'])||empty($_POST['convNom'])||empty($_POST['telephone'])||empty($_POST['convEmail']))
        {
        echo "Veuillez remplir tous les champs!";
        }
        else
        {
        $evoq = new PDO('mysql:host=localhost;dbname=echangeroom;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

        }

        print_r($evoq);
        $Envoi=$_POST['convEnvoi'];
        $Recevoir=$_POST['convRecu'];
        $Montant=$_POST['montant'];
        $Calculer=$_POST['conversion'];
        $Adresse=$_POST['adresse'];
        $Nom=$_POST['convNom'];
        $Telephone=$_POST['telephone'];
        $Email=$_POST['convEmail'];

        $req=$evoq->prepare('INSERT INTO tabclients(convEnvoi,convRecu,montant,conversion,adresse,convNom,telephone,convEmail) VALUES(:convEnvoi,:convRecu,:montant,:conversion,:adresse,:convNom,:telephone,:convEmail)');
        $req->execute(array(
        'convEnvoi' => $Envoi,
        'convRecu' => $Recevoir,
        'montant' => $Montant,
        'conversion' => $Calculer,
        'adresse' => $Adresse,
        'convNom' => $Nom,
        'telephone' => $Telephone,
        'convEmail' => $Email

        ));
        echo "Votre requette a bien été enregistré!";
        }

        ?>

        0
        1. Modérateur
          Tonton idée client n'a pas de valeur par défaut définie c'est ce que signifie le message d'erreur...
          c'est donc au niveau de la définition de ton champ dans ta base de données qu'il faut agir.
          Soit tu lui définis une valeur par défaut ou éventuellement tu définis le chant comme étant auto incrémenté
          0
      2. MERCI A TOUS J'AI TROUVÉ L'ERREUR
        0