Partage
  • Partager sur Facebook
  • Partager sur Twitter

Enregistrement formulaire en bdd

Quelle solution choisir pour enregistrer un formulaire en bdd

    12 mars 2024 à 9:07:19

    Bonjour à tous,

    J'aimerais recueillir vos avis sur la manière dont je traite et exploite les données de ma base de données.

    Actuellement, lorsque l'utilisateur soumet le formulaire HTML, les données sont envoyées au serveur PHP via Ajax. Du côté PHP, je récupère ces données dans la variable $_POST, les passe à la fonction htmlspecialchars pour chaque entrée, puis les enregistre dans la base de données MySQL via PDO.

    En ce qui concerne l'affichage, je récupère également les données en Ajax en utilisant JSON, puis les affiche en générant du HTML dans la page. Cependant, j'ai rencontré un problème lors de la modification des données déjà enregistrées, notamment avec les caractères spéciaux tels que &amp; en &,   &quot; en ",    &#039; en ',    &lt; en <,   &gt; en >. J'ai dû utiliser une fonction JavaScript pour reconvertir ces caractères, mais je trouve cela peu élégant.

    Auriez-vous d'autres solutions à proposer ?

    Merci d'avance !

    -
    Edité par Skytylon 12 mars 2024 à 9:12:44

    • Partager sur Facebook
    • Partager sur Twitter
      12 mars 2024 à 10:17:20

      Bonjour,

      Si c'est pour retourner les entrées décodées et regénérer le html, pourquoi pas 

      htmlspecialchars_decode()

      Néanmoins j'avoue que je ne vois pas vraiment l'intérêt parce que la sortie sera comme l'entrée.:'(

      Perso, je rentrerais le tout dans la bdd avec une requête préparée et je ferais la sortie avec le htmlspecialchars (mais pas de html interprétable). 

      Si le but ultime c'est de ne pas avoir de html dans la bdd et de le récupérer à la fin en gardant la main sur les balises, pourquoi pas qqch comme le bbcode ?

      <b> -> [b] -> bdd -> [b] -> <b> -> sortie



      -
      Edité par GBNet 12 mars 2024 à 10:18:26

      • Partager sur Facebook
      • Partager sur Twitter
        12 mars 2024 à 11:14:11

        > les passe à la fonction htmlspecialchars pour chaque entrée

        Comme dit ci-dessus, c'est ce que tu ne devrais absolument pas faire, htmlspecialchars c'est à l'affichage/echo, ça n'a rien à faire en entrée d'une bdd/sur les requêtes ! Ca fait des années qu'on le dit entre autres pour éviter le problème que tu rencontres :

        -
        Edité par julp 12 mars 2024 à 11:21:54

        • Partager sur Facebook
        • Partager sur Twitter
          12 mars 2024 à 11:15:17

          Skytylon a écrit:

          les passe à la fonction htmlspecialchars pour chaque entrée, puis les enregistre dans la base de données MySQL via PDO.

          C'est pourquoi il ne faut surtout pas faire de htmlspecialchars à l'insertion en base : https://zestedesavoir.com/articles/2489/ne-pas-confondre-faille-par-injection-sql-et-faille-xss/

          • Partager sur Facebook
          • Partager sur Twitter

          Enregistrement formulaire en bdd

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