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 :

mettre du code dans la création d'un fichier php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Par défaut mettre du code dans la création d'un fichier php
    bonjour tout le monde !

    Je vais essayer d'être clair dans le problème que je veux vous exposer.

    Je veux génèrer des fichiers php de manière dynamique dans mon appli, en gros suivant les choix de l'utilisateur, le nom dans la balise html "title" change etc...

    Pour cela j'utilise une variable

    $var = "je mets ici toute ma page php";

    Bon ca marche !

    Mais quand je veux inclure du code php dans cette même génération, ca me pose problème. je m'explique...

    exemple :
    ---------
    dans ma variable $var, j'ai une requête à une ligne :
    $var = requet("SELECT nom FROM table WHERE id_utilisateur='$id' ");
    (exemple ou l'id était égal à 1)

    Quand le fichier est généré, on a
    = requet("SELECT nom FROM table WHERE id_utilisateur='1' ");

    il n'y a plus mon "$var" !!

    Il y a surement un moyen pour contourner ce problème !

    merci d'avance pour vos réponses !

  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
    Pourrait-on avoir le code en question ? PHP cherchera à interpoler (remplacer une variable par sa valeur) dans les chaînes délimitées par des double quotes. Ce n'est plus le cas si le caractère dollar est échappé (précédé d'un backslash) ou lorsque l'on utilise des chaînes délimitées par des simple quotes.

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Par défaut
    Citation Envoyé par julp
    Ce n'est plus le cas si le caractère dollar est échappé (précédé d'un backslash)
    désolé je ne vois pas ce que tu veux dire

    je ne peux pas donner mon code entier pour le moment, mais le problème que j'ai et expliquer au dessus ! (je n'ai pas été très clair, j'ai utilisé 2 fois $var )

    Je vais retenter d'expliquer avec un autre exemple :
    --------------------
    pour info:
    ---------
    $nom = TOTO;
    $i = 1;
    dans un fichier a part:
    function requet(){...}; //renvoie le résultat de la requete
    --------------------

    $mon_fichier = "
    <html>
    <head>".$nom."</head>
    <body>
    <?php
    include(requete.php);
    $var = requet("SELECT nom FROM table WHERE id_utilisateur='$id'");
    ?>
    ....
    </body>
    </html>
    ";

    quand mon fichier est crée, je l'édite pour voir ce que ca donne et j'ai :
    <html>
    <head>TOTO</head>
    <body>
    <?php
    include(requete.php);
    = requet("SELECT nom FROM table WHERE id_utilisateur='1'");
    ?>
    ....
    </body>
    </html>

    Et là c'est le drame

    Il a voulu assigner des valeurs à mes variables !!!

    Donc comment faire pour que ca ne se fasse pas ! merci bien

  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
    Syntaxiquement j'aurais plutôt écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $mon_fichier = "
    <html>
    <head>".$nom."</head>
    <body>
    <?php
    include('requete.php');
    \$var = requet(\"SELECT nom FROM table WHERE id_utilisateur='$id'\");
    ?>
    ....
    </body>
    </html>
    ";
    Ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $mon_fichier = '
    <html>
    <head>'.$nom.'</head>
    <body>
    <?php
    include("requete.php");
    $var = requet("SELECT nom FROM table WHERE id_utilisateur=\'' . $id . '\'");
    ?>
    ....
    </body>
    </html>
    ';

  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 22
    Par défaut
    et donc avec le \$var ca marchera ??

    si c'est le cas je teste ca ce soir

  6. #6
    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
    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $var = 3;
    echo "\$var vaut $var";
    echo '$var vaut ' . $var;
    ?>
    Donne toutes deux "$var vaut 3". Comme je le disais plus haut, dans une chaîne délimitée par des double quotes ("), PHP cherchera à interpoler la variable, c'est à dire à la remplacer par sa valeur et qui si elle n'est pas définie sera remplacée par rien (une chaîne vide). On ne retrouve pas ce comportement avec des quotes simples (').

    Un peu de lecture si vous le souhaitez : Apostrophes ou guillemets, lesquels choisir ?.

Discussions similaires

  1. Puis-je mettre ce code dans un module ?
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 09/03/2009, 15h18
  2. Comment mettre ce code dans une classe ?
    Par oranocha dans le forum Langage
    Réponses: 2
    Dernier message: 16/07/2008, 14h51
  3. [PHP-JS] Peut on mettre ce code dans une variable?
    Par pierrot10 dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2007, 17h04
  4. Réponses: 2
    Dernier message: 07/02/2007, 18h31
  5. Impossible de mettre du code dans <HEAD>
    Par sunshine33 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 02/06/2006, 11h31

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