IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Enregistrer proprement les données d'un formulaire ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Par défaut Enregistrer proprement les données d'un formulaire ?
    Bonjour,

    Je "patauge" sur la façon d'enregistrer proprement les données d'un formulaire en BD.

    Supposons un simple input qui doit être enregistré bd:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input name="titre" size="65" value="<?php if (!empty($_POST["titre"])) { echo $_POST["titre"]; } ?>" type="text"/>
    Utilisez-vous sur le "echo" la fonction "ENT_QUOTES" et/ou "htmlspecialchars" et/ou "stripslashes" ou rien?
    Idem sur un textarea ou tout autre élément d'un formulaire ?

    Note : utilisation de "mysql_real_escape_string" lors de l'insertion.

    Merci

  2. #2
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 36
    Par défaut
    A mon humble avis tu fais bien de distinguer les 2 cas :

    1. Cas du echo :
    Pour ma part j'utilise htmlspecialchars() sans option particulière (sauf l'encodage si besoin ), et ce en effet aussi bien pour les input que pour les textarea.

    2. Cas des insert/update :
    mysql_real_escape_string() est mon ami (et peut être aussi le tien ? )

    Dans tous les cas, faire en sorte que les données stockées dans la base soient "brutes", c'est-à-dire sans les backslash ni les entités html. Ainsi tu sais ce que tu as dans ta base.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 128
    Par défaut
    Merci de votre réponse .

    1. Cas du echo :
    Si je ré-affiche $_POST dans mon input, j'ai le droit à une jolie série de slach (/) du à l'insertion de double quote, j'utilise donc stripslashes() en plus de htmlspecialchars() pour l'affichage de celui-ci. Du coup, dois-je enregistrer ces slach (/) en bd et les virer en sortie ou les virer directement avant l'enregistrement?

    2. Cas des insert/update :
    J'utilise systématiquement mysql_real_escape_string() .

    3- Cas du echo en sortie de BD :
    Si celui-ci s'affiche entre des doubles quote (genre méta-tags et Cie), j'utilise htmlspecialchars(), sinon rien.

    Dans tous les cas, faire en sorte que les données stockées dans la base soient "brutes", c'est-à-dire sans les backslash ni les entités html.
    J'utilise l'éditeur Ckfinder sur un textarea qui me sort en bd des entités du genre "&eacute; &egrave;" et la je ne vois pas comment convertir les données en texte "brute" avant enregistrement

    Note : teste en cours sous free.fr ou magic quote est activé. Il faudra que je trouve une compatibilité avec 1&1 ou magic quote est désactivé...

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/08/2009, 10h19
  2. Réponses: 6
    Dernier message: 17/07/2008, 14h02
  3. [MySQL] Enregistrer les données d'un formulaire sur un autre serveur
    Par nixax dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 04/11/2006, 21h36
  4. Réponses: 6
    Dernier message: 06/06/2006, 11h46
  5. enregistrer les données d'un FORMULAIRE sur une TABLE
    Par godzinho dans le forum Access
    Réponses: 15
    Dernier message: 11/03/2006, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo