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 :

addslashes() stripslashes() et "" '' [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut addslashes() stripslashes() et "" ''
    bonsoir , je propose de prendre un champ titre.
    Le contenu du champ sera rempli dans un formulaire puis stocké dans une base de données et réaffiché.

    le titre serait par exemple!

    $titre => les "geeks" sont de retour.
    Je fais un addslashes avant de le rentrer dans ma BDD.
    $titre devient donc les \"geeks\"

    Ensuite quand je veux le reafficher , je fais un stripslashes.
    $titre devient les "geeks"

    Et le problème c'est si j'affiche ça dans un input text ca marche mal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo'<input type="text" value=" '.$titre.' ">';
    De même si j'ai des ' ' dans mon titre et utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo"<input type='text' value='$titre'>";
    Comment faire?
    merci

  2. #2
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    Salut !

    si tu te connectes à une base mysql, tu devrais utiliser la fonction "mysql_real_escape_string()" qui protégera tes valeurs.

    au lieu de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre=addslashes($titre);
    tu feras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre=mysql_real_escape_string($titre);
    puis pour récupérer tes valeurs de la base et les afficher correctement, continues à utiliser Maintenant, tu ne nous as pas dis ce qu'était ton problème, alors un petit plus de précision nous aiderait.

  3. #3
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    voici la chaine de caractère "geek" .

    Dans mas base de données , elle sera stockée comme \"geek\" .

    si je vais l'afficher dans une zone de formulaire , là ça plante à chaque coup.

    car l'attribue devient soit value=""geek"" <- plantage
    soit value="\"geek\" <- plantage

    J'avoue ne pas voir de solution.
    L'affichage HTML ne se fait pas correctement car le " ferme le balise value.

  4. #4
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    as-tu essayé la solution que je t'ai proposé ?
    pour l'affichage essais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo"<input type='text' value=$titre>";
    Sachant que en PHP les guillemets ( " ) permette d'afficher le résultat de la variable.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $a="salut";
    echo "$a Julien"; //renvoit : salut Julien
     
    echo '$a Julien'; //renvoit : $a Julien

  5. #5
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    je pense pas que ça respecte les normes du HTML ça.

    Si la variable est mise à vide .
    value = rien du tout .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $titre = "";
    echo"<input type='text' value=$titre>";
    <input type='text' value=> // respecte pas le HTML

  6. #6
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    Ah bon ?

    donc pour toi il est interdit d'afficher un champs vide ?
    Ou alors j'ai mal compris ce que tu as dis

  7. #7
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    http://www.w3schools.com/xhtml/xhtml_syntax.asp

    Attribute Values Must Be Quoted

    This is wrong:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type ="text" value="" />
    <input type ="text" value=yesss/>

    This is correct:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <table width="100%" >
     
    <table width="100%" class="" >

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. addslashes / stripslashes en javascript
    Par the_jeck dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 24/03/2011, 14h44
  2. Réponses: 7
    Dernier message: 24/09/2005, 13h30

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