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 :

Php à la volée : le code est visible dans le source !


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut Php à la volée : le code est visible dans le source !
    Bonjour à tous,

    Je suis en train de créer un système de template tout simple, mais je rencontre un problème. Il doit me manquer une fonction. Je tente ici une simplissime représentation.

    Côté HTML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <html>
    <body>
    [FORMULAIRE]
    </body>
    </html>
    Côté PHP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $form = "<form method=\"post\">\n";
    $form .= <input name=\"prenom\" type=\"text\"  value=\"<?=\$_POST['prenom']?>\" />
    $form .= "</form>";
     
    $content = LoadTemp("fichier.html");
    $content = str_replace("[FORMULAIRE]", $form, $content);
    echo $content;
    Ca fait bien ce que je veux, sauf que le code php s'affiche dans le champ du formulaire (value), ce qui donne, sur la page et côté source :

    <input type="text" name="prenom" value="<?=$_POST['prenom']?>">

    Pourquoi ? Faut-il une fonction pour "protéger" l'écriture de la portion de code PHP ? Merci du tuyau.

  2. #2
    Invité
    Invité(e)
    Par défaut
    car ton code est faux

    comme ça ca devrait être mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $form = "<form method=\"post\">\n";
    $form .= '<input name="prenom" type="text"  value="'.$_POST['prenom'].'" />';
    $form .= "</form>";

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Tu donnes l'impression d'utiliser la syntaxe ASP avec le PHP...
    Les habitudes ont la peau dure !

  4. #4
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Merci de vous pencher sur ma question.
    Mais j'ai dû mal m'expliquer : j'ai besoin "d'écrire" ce petit bloc PHP dans le code HTML du formulaire de la même façon qu'on peut le faire tout naturellement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html>
    <body>
    <form method="post">
    <input name="prenom" type="text" value="<?=$row['prenom']?>" />
    </form>
    </body>
    </html>
    En fait j'ai besoin que la ligne <input> soit écrite rigoureusement comme ça au final, c'est à dire avec la partie <?=$row['prenom']?> invisible, mais évidemment affiche la vraie valeur issue de la BDD. Mais ici, le fait que ce soit le PHP qui génère cette ligne via str_replace au lieu qu'elle soit écrite en dur pose problème...
    Et je capte pas pourquoi.
    Est ce que je suis plus clair ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Au lieu de
    écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo($row['prenom']); ?>
    C'est déjà plus propre.

  6. #6
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    C'est vrai que c'est plus "propre"...
    Ce n'est malheureusement pas plus efficace.
    J'ai toujours le code en clair.

Discussions similaires

  1. [HTML 5] Formulaire caché non visible dans le source
    Par Thierrydu50 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/07/2009, 17h55
  2. [Spip] Codes typo visibles dans résumé d'article
    Par janluski dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/09/2008, 21h36
  3. champs cachés (dans le code), mais visibles(dans la page) : quelle techno ?
    Par knice dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 18/08/2008, 17h01
  4. Réponses: 6
    Dernier message: 07/08/2008, 08h07
  5. Réponses: 2
    Dernier message: 15/06/2007, 00h35

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