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 :

php dans du html dans mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Par défaut php dans du html dans mysql
    voila je veux faire afficher un image de façon aléatoire,
    la div contenant le lien vers l'image est dans la base mysql,
    Lorsque je tente un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div ...>
    <IMG src="<?php echo '/logo/logo'.rand(1,8).'.jpg'; ?>" ...height="" width="" >
    </div>
    dans la base mysql, lorsque ma page s'affiche
    je vais chercher en bdd mon div; puis je le stoke dans $logo et j'affiche:
    et là aucune image. je regarde le code source et surprise je peux lire
    le code php(inclus dans le div) qui ne sait pas du tout éxécuter mais
    qui est resté sous l'état de string.
    si qlq un sais pourquoi ça fait ça je veux bien savoir aussi.
    et si qlq un a une idée pour m'aider je prends.
    merci à tous

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Le code PHP ne sera pas interprété tout seul, c'est à vous de le faire en faisant appel à eval.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $string = <<< EOS
    <div ...>
    <IMG src="<?php echo '/logo/logo'.rand(1,8).'.jpg'; ?>" ...height="" width="" >
    </div>
    EOS;
     
    eval('?>' . $string);
    Avec tous les risques que présentent cette méthode.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Par défaut
    je suis pas sure de tout bien saisir alors je demande pour vérifier:
    Depuis PHP 4, eval() retourne NULL sauf si return est appelée dans le code évalué, auquel cas la valeur passée à return est retournée. Dans le cas d'une erreur de syntaxe dans le code évalué, eval() retourne FALSE.
    si je comprend bien il me suffirai de donner rand(1,8) à return dans le str
    argument d'eval() pour obtenir ce que je souhaite?

    d'après ce que j'ai lu il y a des risques de sécurité avec eval,
    étant encore novice j'ai du mal à tout concevoir, quel sont ces
    risque?(en dehors d'un str contenant un code éronné)
    sinon existe-t-il d'autre solution? html, js, ajax...?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par warwill
    si je comprend bien il me suffirai de donner rand(1,8) à return dans le str
    argument d'eval() pour obtenir ce que je souhaite?
    Ça dépend précisément de la nature du code que vous récupérez dans votre base. S'il y a du HTML comme le laisse suggérer votre précédent message et exemple, l'instruction return ne sera pas utilisable.

    Citation Envoyé par warwill
    d'après ce que j'ai lu il y a des risques de sécurité avec eval,
    étant encore novice j'ai du mal à tout concevoir, quel sont ces
    risque?(en dehors d'un str contenant un code éronné)
    sinon existe-t-il d'autre solution? html, js, ajax...?
    Oui éventuellement mais le principal risque c'est que quelqu'un ajoute du code à but "malicieux" (exploration de fichiers, destruction de fichiers, récupération de vos identifiants de connexion à la base, ...). Mais la fonction eval est le seul moyen d'évaluer et interpréter dynamiquement du code PHP, souvent et pour limiter les possibilités on recourt à un langage à "balises" limité puis ces balises sont remplacées par expressions régulières (comme les moteurs de template par exemple).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Aube (Champagne Ardenne)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 156
    Par défaut
    merci pour ces bons tuyaux.
    finalement j'ai fait autrement. Dans ma bdd j'ai gardé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div...><IMG height="" width="" src="/logo/logo
    et dans ma page, après requete et stockage dans $logo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php echo $logo.rand(1,8).'.jpg" ></div>'; ?>
    et ça marche.
    comme j'ai du mal à bien saisir cet eval() je préfère m'en passer
    que de faire des boulettes.

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

Discussions similaires

  1. Php dans du html dans du php !
    Par iceskunk dans le forum Langage
    Réponses: 5
    Dernier message: 09/02/2015, 23h52
  2. Html dans du html
    Par Tanoak_LaCapuche dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/07/2012, 09h17
  3. Passer une valeur PHP et du HTML dans un innerHTML
    Par Rifton007 dans le forum Langage
    Réponses: 4
    Dernier message: 14/02/2010, 13h24
  4. Une image dans un Jpanel dans un Jpanel dans un Jframe
    Par ThomasH dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 09/12/2009, 20h23
  5. [FLASH MX2004] Balises HTML dans mysql et PHP
    Par Garra dans le forum Flash
    Réponses: 3
    Dernier message: 06/04/2006, 11h46

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