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 :

Echo dans une base de données


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut Echo dans une base de données
    Bonjour le forum,
    Je rencontre un petit soucis.
    Quand j'insère ceci dans mon fichier index.php cela fonctionne bien en m'affichant le nom correspondant issu de ma base mysql.
    Mais dans ma base de donnée quand j'insère la même chose il n'interprete pas la commande. Dans mon navigateur je n'ai rien qui s'affiche et dans le code source je retrouve : Pourquoi cela n'est pas interpreté quand ma commande se trouve dans ma base de donnée ? :-(

    Merci à vous !

  2. #2
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    c'est moi ou ???
    j'ai pas tout compris

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    T'as de la chance camyo... Moi je crois avoir compris et ça me fait peur !

    Dans ta base, c'est bien la chaine "<?php echo $nom2 ?>" que tu stockes ???

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Désolé je n'ai pas été clair
    Mais oui je stock bien cette chaine dans ma base, ensuite mon fichier index.php va venir afficher le contenu de ma base ( donc de cette chaine ) puis je voudrais qu'il traite ce code comme ci il était inséré directement dans le code source

  5. #5
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    Oui ... Mais non

    tu ne peux afficher <?php echo $nom2 ?> depuis ta base , car pour afficher ça, tu dois déjà faire <?php echo $ta_variable ?> donc tu doubles les ouvertures de balise, les echo , tu fermes ta balise au milieu d'une instruction ..

    donc, non, on n'affiche pas <?php echo <?php echo $nom2 ?> ; ?>.


    Bovino, t'as raison

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    En faite je ne veux pas afficher cette chaine dans mon navigateur mais qu'elle soit interpretée.
    Du coup comment faire pour que ma chaine issue de ma base de donnée soit interpretée en php ?

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Mais pourquoi diable veux-tu stocker en BDD des instructions PHP ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    :-)
    En faite j'ai un fichier index.php ; j'insère un texte de 200 mots dans ma base de donnée, il y a une variable le nom d'une personne.
    Je pensais afficher le texte contenu dans ma base de donnée dans le fichier index.php et insérer ma variable, mais apparemment c'est pas si simple^^

  9. #9
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Dans ce cas, mieux vaut utiliser une valeur que tu auras pré-déterminé (##PERSON_NAME## par exemple) et la remplacer à l'affichage (avec un str_replace par exemple) ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 386
    Points : 90
    Points
    90
    Par défaut
    Ca doit paraitre abérrant pour certaine personne, mais quand j'insère cette commande dans un fichier texte et qu'ouvre ce fichier depuis index.php, ma commande est bien interpretée, je pensais que c'était la meme chose si ma commande était dans ma base sql

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    A mon avis, eval fera l'affaire.

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    surtout pas d'eval, que tous les dieux des développeurs t'en préservent.

    Tu dois juste revoir ton approche dans la gestion de cette problématique.

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Et qu'est-ce qu'il a fait de mal "eval" ?

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Points : 46
    Points
    46
    Par défaut
    Eval, c'est la possibilité de donner à quiconque la possibilité d'interagir avec ton script mais pas forcément dans les endroits où tu souhaitent les faire interagir.

    D'un point de vue conception et sécurité, je trouve ça assez limite de l'employer, surtout dans ton cas qui est relativement simple.

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    eval c'est très pratique mais, comme beaucoup de choses très pratiques en PHP, il faut faire gaffe à ce qu'on en fait.

    Si jamais le texte stocké en bdd et envoyé à eval vient d'un formulaire pas trop sécurisé, c'est une magnifique faille format Grand Canyon dans laquelle on peut engouffrer des instructions pas trop sympathiques...

    Si l'idée c'est juste d'avoir un texte du genre
    Bienvenue Machin et merci de vous être inscrit sur le site bidule.fr
    où Machin est à remplacer par le nom de l'utilisateur, la solution de k'amm m'a l'air très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nom = 'Machin';
    $str_texte = 'Bienvenue ##PERSON_NAME## et merci de vous être inscrit sur le site bidule.fr';
    echo str_replace('##PERSON_NAME##', $str_texte, $nom);

  16. #16
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il faut partir du principe de base "Never Trust User Input" et dans User Input englober tout ce qui n'est pas écrit par soi-même : les données reçues d'un formulaire bien sûr (GET / POST) mais aussi les données issues de COOKIE, SESSION et BDD. Tout simplement parce que ces données proviennent d'éléments potentiellement vulnérables et que si ils ont été piratés, considérer ces données comme non sures est la première parade pour éviter de propager l'attaque.
    Avec ce principe, faire un eval() sur une donnée non sure est une énorme erreur.

  17. #17
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Et si on protège la saisie des données (à interpréter) par un mot de passe, ça serait pas jouable ? Et la solution de k'amm ne me semble marcher que si on traite une instruction prévue...

  18. #18
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    la solution de k'amm ne me semble marcher que si on traite une instruction prévue...
    C'est un peu le but : empêcher les instructions non prévues de fonctionner mrgreen:
    Citation Envoyé par laurentSc Voir le message
    Et si on protège la saisie des données (à interpréter) par un mot de passe, ça serait pas jouable ?
    Tout tourne autour d'un point : la confiance en l'utilisateur, notamment dans le fait qu'il ne va pas taper n'importe quoi... Si c'est le cas, c'est effectivement une bonne solution.
    Sauf que comme l'a dit Bovino, on ne fait jamais confiance à l'utilisateur

    Donc au final, soit tu utilises eval en ayant confiance en tes utilisateurs pour ne pas écrire quelque chose du genre system("sudo format -rf /"); ; soit tu verrouilles en donnant une liste de marqueurs du genre ##utilisateur_nom##, ##utilisateur_password##...

Discussions similaires

  1. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  2. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 18h54
  3. les images dans une base de données
    Par houhou dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/06/2004, 14h27
  4. [SYBASE]Libérer espace libre dans une base de données ?
    Par le_parrain dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 09h36
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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