Partage
  • Partager sur Facebook
  • Partager sur Twitter

Impossible d'enregistrer dans une BDD

Formulaire

    19 mars 2024 à 22:33:05

    Bonjour,

    J'ai crée une formulaire sur la forme d'un tableau afin d’insérée dans une BDD des information, mais rien ne se passe, ce m'enregistre rien , je ne comprend pas pourquoi ?

    est ce a cause des input dans les balise TD ?

    Voici mon code :

    <?php
    session_start();
    $bdd = new PDO('mysql:host=localhost;dbname=espace_membres;charset=utf8;', 'root', '');
    if (!$_SESSION['mdp']) {
        header('Location: connexion.php');
    }
    
    
    
    if (isset($_POST['envoi'])) {
        if (!empty($_POST['num']) && !empty($_POST['client']) && !empty($_POST['modele']) && !empty($_POST['probleme']) && !empty($_POST['temps']) && !empty($_POST['revision']) && !empty($_POST['garantie']) && !empty($_POST['prevue']) && !empty($_POST['fini'])) {
    
            $num = htmlspecialchars($_POST['num']);
            $client = htmlspecialchars($_POST['client']);
            $modele = htmlspecialchars($_POST['modele']);
            $probleme = nl2br($_POST['probleme']);
            $temps = htmlspecialchars($_POST['temps']);
            $revision = htmlspecialchars($_POST['revision']);
            $garantie = htmlspecialchars($_POST['garantie']);
            $prevue = htmlspecialchars($_POST['prevue']);
            $fini = htmlspecialchars($_POST['fini']);
    
            $insertUser = $bdd->prepare('INSERT INTO `compterendu`(`Machine`, `Client`, `Modele`, `Probleme`, `Temps`, `Révision`, `Garantie`, `Rendezvous`, `Fini`, `Date`) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)');
            $insertUser->execute(array($num, $client, $modele, $probleme, $temps, $revision, $garantie, $prevue, $fini));
        }
        
    }
    
    
    
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <title>Home</title>
            <meta charset="utf-8">
            
            <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
        
            <link href="style.css" rel="stylesheet" > 
        </head>
        <body>
          
          <!-- NAVBAR -->
    
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
        <nav class="navbar bg-primary">
      <div class="container-fluid">
        <a class="navbar-brand" href="#">
          <img src="espace membres/images/logo/ady.jpg" alt="Logo" width="30" height="24" >
          ADY - Coudre&Broder.com
        </a>
      </div>
    </nav>
    <nav class="navbar navbar-expand-sm bg-secondary ">
      <div class="container-fluid">
        <a class="navbar-brand" href="index.php">Service Technique</a>
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarNav">
          <ul class="navbar-nav">
          <nav class="centered nav bg">
      <form class="container-fluid justify-content-start">
            
            <a href="suivi.php" >
            <button class="btn btn-sm btn-outline-light" type="button">Compte rendu</button>
            </a>  
    
    
            <a href="piece.php" >
            <button class="btn btn-sm btn-outline-light" type="button">Commande de pieces</button>
            </a> 
            <a href="occasion.php" >
            <button class="btn btn-sm btn-outline-light"  type="button">Machine d'occasion</button>
            </a> 
            <a href="conge.php" >
            <button class="btn btn-sm btn-outline-light"  type="button">Demande de congés</button>
            </a> 
            <a href="deconnexion.php" >
            <button class="btn btn-sm btn-danger"  type="button">Déconnexion</button>
            </a> 
            <a href="deconnexion.php" >
            <button class="btn btn-sm btn-outline-light"  type="button">Smaller button</button>
            </a>     
     
    </nav>
              </li>
          </ul>
        </div>
      </div>
    </nav>
    
     <!-- NAVBAR -->
    
    
       SUIVI JOURNALIER
       
       <div class="table-responsive-sm">
        <table class="table caption-top">
      <caption>List of users</caption>
      <thead>
        <tr>
          <th scope="col"># Machine</th>
          <th scope="col">Nom du client</th>
          <th scope="col">Modele Machine</th>
          <th scope="col">Probleme </th>
          <th scope="col">Temps passé</th>
          <th scope="col">Révision</th>
          <th scope="col">Sous garantie</th>
          <th scope="col">Rendez vous </th>
          <th scope="col">Machine fini</th>
              </tr>
      </thead>
    
      <form  method="POST" action="">
      <tbody>
        <tr>
    
           <!-- Case numéro -->
    
           <td><div class="input-group input-group-xxl mb-1">
      <span  id="num"></span>
      
      <input type="text" name="num" class="form-control">
      
    </div>
    </td>
    
     <!-- Case client -->
    
          <td>
          
      <input type="text" name="client">
    
    </div></td>
    
    <!-- Case modele -->
    
          <td><div class="input-group input-group-xxl mb-1">
      <span  id="modele"></span>
      
      <input type="text" name="modele" class="form-control">
    </div></td>
    
    <!-- Case probleme -->
    
          <td><div class="input-group input-group-xxl ">
      <span  id="probleme"></span>
      <div class="form-floating">
      
      <textarea class="form-control" id="probleme"></textarea>
    </div>
    </div></td>
    
    <!-- Case temps -->
    
          <td><div class="input-group input-group-xxl mb-1">
      <span  id="temps"></span>
      
        <select class="form-select form-select-sm" name="temps" aria-label="Small select example">
      <option selected></option>
      <option value="15">15 min</option>
      <option value="30">30 min</option>
      <option value="45">45 min</option>
      <option value="1">1h</option>
      <option value="2">2h</option>
      <option value="3">3h</option>
      <option value="4">4h</option>
      <option value="5">5h</option>
      <option value="6">6h</option>
      <option value="7">7h</option>
      <option value="8">8h</option>
    </select>
    </div></td>
    
    <!-- Case revision -->
    
          <td><div class="input-group-xxl mb-1">
      <span  id="revision"></span>
      <div class="form-check">
      
      <input class="form-check-input" type="radio" name="revision" id="exampleRadios1" value="Oui" >
      <label class="form-check-label" for="exampleRadios1">
      Oui    
      </label>
    </div>
    <div class="form-check">
    
      <input class="form-check-input" type="radio" name="revision" id="exampleRadios2" value="Non" >
        <label class="form-check-label" for="exampleRadios2">
      Non
      </label>
    </div>
    
    
    </div></td>
    
    <!-- Case garantie -->
    
          <td><div class=" input-group-xxl mb-1">
      <span  id="garantie"></span>
      <div class="form-check">
      
      <input class="form-check-input" type="radio" name="garantie" id="exampleRadios1" value="Oui" >
      <label class="form-check-label" for="exampleRadios1">
      Oui
      </label>
    </div>
    <div class="form-check">
    
      <input class="form-check-input" type="radio" name="garantie" id="exampleRadios2" value="Non">
      <label class="form-check-label" for="exampleRadios2">
      Non
      </label>
    </div>
    
    
    </div></td>
    
    <!-- Case prevue -->
    
          <td><div class=" input-group-xxl mb-1">
      <span  id="prevue"></span>
      <div class="form-check">
      
      <input class="form-check-input" type="radio" name="prevue" id="exampleRadios1" value="Oui" >
      <label class="form-check-label" for="exampleRadios1">
      Oui
      </label>
    </div>
    <div class="form-check">
    
      <input class="form-check-input" type="radio" name="prevue" id="exampleRadios2" value="Non">
      <label class="form-check-label" for="exampleRadios2">
      Non
      </form>
      </label>
    </div>
    
    
    </div></td>
    
    <!-- Case fini -->
    
    <td><div class=" input-group-xxl mb-2">
      <span  id="fini"></span>
      <div class="form-check">
     
      <input class="form-check-input" type="radio" name="fini" id="exampleRadios1" value="Oui" >
      <label class="form-check-label" for="exampleRadios1">
      Oui
      </form>
      </label>
    </div>
    <div class="form-check">
    
      <input class="form-check-input" type="radio" name="fini" id="exampleRadios2" value="Non" >
      <label class="form-check-label" for="exampleRadios2">
      Non
      </form>
      </label>
    </div>
    
    
     <!-- Case vide 
    </div>
    </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td>Jacob</td>
          <td>Thornton</td>
          <td>@fat</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          
    
        </tr>
        <tr>
          <th scope="row">3</th>
          <td>Jacob</td>
          <td>Thornton</td>
          <td>@fat</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
        </tr>
        <tr>
          <th scope="row">1</th>
          <td>Jacob</td>
          <td>Thornton</td>
          <td>@fat</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
        </tr>
        <tr>
          <th scope="row">1</th>
          <td>Jacob</td>
          <td>Thornton</td>
          <td>@fat</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
          <td>@mdo</td>
        </tr>
        
        -->
    
      </tbody>
    </table>
    
    <input type="submit" name="envoi" action="index.php">;
    
    </form>
        </body>
        </html>


    en gros je veut qui recupere les donnée dans les input pour les entrées dans la table compterendu

    Ou sont mes erreurs ?

    MErci d'avance de prendre du temps pour m'aidée

    -
    Edité par Oregano34 19 mars 2024 à 22:35:28

    • Partager sur Facebook
    • Partager sur Twitter
      19 mars 2024 à 23:09:23

      Bonjour,

      Pas de htmlspecialchars sur les données entrées en BDD, c'est uniquement à l'affichage (d'où le "html" dans le nom de la fonction)

      Je te conseils de passer par les paramètres nommées pour le prepare et le execute de pdo. Comme cela tu verras ton erreur de comptage

      Pense à activer l'affichage des erreurs de PDO et PHP (cf la FAQ de ce forum)

      Passe ton code aux validateurs W3C car la balise </form> ne doit pas se trouver dans un "label"

      • Partager sur Facebook
      • Partager sur Twitter
        19 mars 2024 à 23:38:28

        Bonsoir,

        Merci de la réponse rapide , j'ai activée l'affichage des erreur PDO et PHP rien ne ressort, J'ai supprimer les htmlspecialchart de mes entrée Bdd

        quand au validateur W3C ca ressort tellement d'erreur (le site n'a pas vocation d’être "publique", c'est plus pour de l'usage "interne")

        mais je ne comprend pas ce que tu veut dire par "Je te conseils de passer par les paramètres nommées pour le prepare et le execute de pdo. Comme cela tu verras ton erreur de comptage"

        • Partager sur Facebook
        • Partager sur Twitter
          19 mars 2024 à 23:51:31

          même si ce n'est pas publique, c'est bien de les corriger car suivants les navigateurs, tu n'auras pas le même rendus

          pour les paramètres nommés de ta requête, voici un exemple

           $sth = $dbco->prepare("
                              INSERT INTO Clients(Nom,Prenom,Adresse,Ville,Codepostal,Pays,Mail)
                              VALUES (:nom, :prenom, :adresse, :ville, :cp, :pays, :mail)
                          ");
                          $sth->execute(array(
                                              ':nom' => $nom,
                                              ':prenom' => $prenom,
                                              ':adresse' => $adresse,
                                              ':ville' => $ville,
                                              ':cp' => $cp,
                                              ':pays' => $pays,
                                              ':mail' => $mail));



          • Partager sur Facebook
          • Partager sur Twitter

          Impossible d'enregistrer dans une BDD

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown