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

Langage PHP Discussion :

Récupérer données en base avant insertion


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 164
    Par défaut Récupérer données en base avant insertion
    Bonjour,

    je me suis fait une classe qui me créée mes inputs, textarea etc.. et qui me gére les erreurs de saisies.

    A l'affichage de ma page je fais des appels à mes fonctions en lui passant les données à afficher récupérées en base.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $monInstance->addInput("text", "titre_liste", "Le titre est invalide [a-z,A-Z].", $formTitre, 'width: 220px;');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function addInput($type, $name, $messageErreur, $value, $styleDefaut = '', $classDefaut = '') {
    	if($this->fieldOnError($name)) {
    		echo'<input type="'.$type.'" id="'.$name.'" name="'.$name.'" value="'.html_entity_decode($value).'" class="'.$this->fstyle.' '.$classDefaut.'" style="'.$styleDefaut.'" />
    		<span style="color: #FF0000; margin-left: 5px;">'.$messageErreur.'</span>';
    	} else {
    		echo'<input type="'.$type.'" id="'.$name.'" name="'.$name.'" value="'.html_entity_decode($value).'" class="'.$classDefaut.'" style="'.$styleDefaut.'" />
    		<span style="color: #FF0000; margin-left: 5px;"></span>';
    	}
    }
    Le problème est que dans ma donnée value si il y a des " ca me fait tout péter à l'affichage. Il crois que je ferme l'attribut value...

    Comment régler ce problème ?? sans ajouter un addslashes sinon je les vois à l'affichage.

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Par défaut
    Dans ce cas utilise plutôt les simple quote:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value="'.html_entity_decode($value).'"
    devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value='.html_entity_decode($value).'

  3. #3
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    C'est pas pluto htmlentities() que tu devrais utilisé plutot que html_entity_decode() ? (qui fait l'inverse)

    EDIT : @Tagsof, mauvaise idée ! tu ne fais que déplacer le problème.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 164
    Par défaut
    Quand je rentre les infos en base je fais htmlspecialchars et a l'affichage je fais un html_entity_decode

  5. #5
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    Citation Envoyé par Darkcristal Voir le message
    Quand je rentre les infos en base je fais htmlspecialchars et a l'affichage je fais un html_entity_decode
    d'ou le problème alors...

    vire simplement le html_entity_decode() du coup !

    Edit : explication :

    Si tu enregistres un specialchar de :

    je suis un "cool"
    en BDD, il va te stocker :

    je suis &quot ;cool&quot ;
    Si quand tu l'affiches tu décode ces caracteres, tu te retrouve avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input value="je suis "cool"">
    Ce qui va poser problème... en fait, en faisant un decode, tu décode quelque chose qui était déjà bien encodé puisque si tu touche a rien en le sortant le la BDD, tu auras :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input value="je suis &quot ;cool&quot ;">
    Ce qui est juste...

    (je suis obligé de rajouter des espaces dans &quot ; pour pas que le forum les traduise...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 164
    Par défaut
    et ducou j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input value="je suis &quot ;cool&quot ;">
    qui s'affiche il ne me traduit pas les &quot; en "

  7. #7
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 504
    Par défaut
    ah... Il devrait pourtant là...

    Il te fait ça dans ton code HTML ou a l'affichage de la page HTML ?

    Dans le 1er cas, c'est normal, dans le 2eme, je t'avous que ça me surprend beaucoup...

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/05/2013, 16h04
  2. Vérifier données avant insertion dans une base de données
    Par massbbc dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/09/2010, 11h08
  3. verification si exite dans la base avant insertion
    Par Miss kouka dans le forum Langage
    Réponses: 3
    Dernier message: 14/05/2010, 19h31
  4. [MySQL] verifier si les infos existe en base avant insertion
    Par fey dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 23/01/2008, 19h30
  5. [MySQL] Vérifier l'existance d'une donnée dans la base avant insertion
    Par Him dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 16/07/2006, 15h47

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