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 :

Inclure du texte brut (enregistré dans une base de données) dans le code source d'une page.


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2018
    Messages : 29
    Points : 8
    Points
    8
    Par défaut Inclure du texte brut (enregistré dans une base de données) dans le code source d'une page.
    Bonjour,

    Je cherche un moyen d'inclure le contenu d'un enregistrement SQL dans le code source d'une page.
    L'équivalent d'include, mais pour le code enregistré dans la table sql et non une page.
    J'ai tenté avec "stream_get_contents" et "file_get_contents", mais sans résultat.
    Le but étant de pouvoir stocker par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo date('l jS \of F Y h:i:s A'); ?>
    dans la base de données, mais que lorsque j'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print $donnees['article'];
    dans ma page, il place cet enregistrement dans le code source de la page afin qu'il puisse être exécuté
    au lieu de m'afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo date('l jS \of F Y h:i:s A'); ?>
    sur la page


    Est-ce possible?

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Si tu veux exécuter du code php stocké dans une variable, regarde la fonction eval.

    Mais attention eval is evil.

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 330
    Points : 15 673
    Points
    15 673
    Par défaut
    le fait de mélanger des données avec des traitements posera certainement des problèmes quand vous souhaiterez faire évoluer le code.

    si vous souhaitez des conseils sur la façon d'éviter cela, donnez nous plus de détails sur les fonctionnalités que vous souhaitez.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2018
    Messages : 29
    Points : 8
    Points
    8
    Par défaut
    Merci Badaze et Mathieu pour vos réponses.

    Badaze:
    Merci pour la fonction eval, je ne la connaissais pas; mais elle ne correspondait pas à ce que je voulais faire, car (apparemment) juste possible d’interpréter (difficilement en plus) une chaine contenant des variables php.
    Mon besoin était plutôt d'inclure et d’interpréter ce morceau de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // On intègre le menu correspondant au type d'écran:
    if($_SESSION["is_mobile"] == "mobile"){
    require_once ("../.././scripts/".$type_menu."_m.php");//Le menu spécial mobiles.
    }
    else {
    require_once ("../.././scripts/".$type_menu.".php");//Le menu standard (PC).
    }
    qui appelle une page php qui génère un menu (de navigation) composé d'images qui changent d'état au survol, avec un logo d'entête au dessus ou en dessous (selon le choix de l'utilisateur, et ses uploads) .

    Cette page est habituellement placée en haut de la page qui l'appelle, mais je voulais pouvoir donner la possibilité à l'utilisateur de la placer ailleurs sur la page, et sous une forme améliorée, mais ce serait trop long à expliquer..

    Ceci étant impossible (apparemment) avec la fonction eval, et comme cette fonction est selon http://php.net/:
    Attention
    La construction de langage eval() est très dangereuse car elle autorise l'exécution de code PHP arbitraire. Son utilisation est vivement déconseillée. Si vous avez soigneusement vérifié qu'il n'y a pas d'autres options que de l'utiliser, gardez une attention toute particulière à ne pas y passer de données provenant d'un utilisateur sans les avoir précédemment validées minutieusement.
    , et selon toi:
    Si tu veux exécuter du code php stocké dans une variable, regarde la fonction eval.

    Mais attention eval is evil.
    (Etant plus que croyant (je sais que Dieu et Satan existent), donc....Loin de moi cette fonction diabolique!
    En même temps, était-ce possible de renvoyer autant de code à cette fonction?

    Je me suis donc retourné vers un appel Ajax qui fonctionne exactement comme je le souhaitai c'est-à-dire, part chercher et mettre en forme la page menu, et renvoi le résultat dans une Div

    Je vous place mon résultat (dont je ne suis pas peu fier) (1ère fois que j'utilise Ajax!! )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <?php
    //////// Début du rajout pour insertion libre du menu images dans un article appellé via Ajax /////////
     
    /*
    Pour appeller le menu images dans un des articles, il suffit de placer "<div id="menu_images"></div>"
    Cela aura pour résultat grâce à la fonction ci-dessous de l'appeller via Ajax et de le placer à l'intérieur de cette div.
    */
    if (preg_match('/<div id="menu_images">/', $article)) {    
     
    if($_SESSION["is_mobile"] == "mobile"){
    $page_a_inclure =  "appel_ajax.php?page=../../scripts/menu_images_m.php&ajax=yes&placement_logo=$placement_logo&dirroot=$dirroot&dossier_site=$dossier_site&url_domaine=$url_domaine";//Le menu spécial mobiles.
    }
    else
    { 
    $page_a_inclure =  "appel_ajax.php?page=../../scripts/menu_images.php&ajax=yes&placement_logo=$placement_logo&dirroot=$dirroot&dossier_site=$dossier_site&url_domaine=$url_domaine";//Le menu standard (PC).
    } 
    ?>   
    <script>
    function loadMenu() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          document.getElementById("menu_images").innerHTML = this.responseText;
        }
      };
      xhttp.open("GET", "<?php echo $page_a_inclure;?>", true);
      xhttp.send();
    }
    //Et on appelle le menu par Ajax:
    loadMenu()
    </script>
    <?php    
    }//Fin de : if (preg_match('/<div id="menu_images"></div>/', $article)) { 
     
    //////// Fin du rajout pour insertion libre du menu images dans un article appellé via Ajax ///////// 
    ?>
    Pour Mathieu:
    le fait de mélanger des données avec des traitements posera certainement des problèmes quand vous souhaiterez faire évoluer le code.
    Les données n'auraient donc pas été mélangées avec le traitement, puisque cela restait une page de traitement également, mais pour X raisons, impossible à placer avec la fonction include (ou require).

    si vous souhaitez des conseils sur la façon d'éviter cela, donnez nous plus de détails sur les fonctionnalités que vous souhaitez.
    Et bien merci pour la proposition, mais je fais appel à vous quand je suis vraiment perdu, et je ne voulais pas que l'on me donne la solution, mais si une fonction permettait cela.
    Oui, elle s'appelle => Vive AJAX!!

    Un gros merci à vous deux dans tous les cas et désolé pour la réponse tardive, mais je ne code pas aussi vite que vous, et il m'a fallut la journée pour pondre ceci, et je voulais boucler pour vous tenir informés.

    Big Up à vous...

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 21/03/2017, 16h36
  2. Réponses: 3
    Dernier message: 26/12/2016, 10h31
  3. Réponses: 1
    Dernier message: 26/06/2013, 17h21
  4. Réponses: 2
    Dernier message: 21/07/2010, 14h51
  5. [MySQL] enregistrer une chaine de caractére dans la base de donnée
    Par leaderchips dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/04/2010, 20h35

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