Vous n'êtes pas identifié(e).
bonjour, je n'arrive pas a inserer une page php dans une autre page via un lien dans ma base.
J'ai essaye plusieurs solution mais je n'arrive que a afficher le texte de la cellule dans ma page "incrustee". J'ai mis le lien en dur dans la cellule, j'ai aussi essaye de mettre l'include directement dans la cellule. Aucune des 2 ne fonctionne. Peut etre pas la bonne syntaxe ou d'echappement, chui mewbi. Pourriez vous me donner une syntaxe valable, svp ? Merci de votre aide.
Hors ligne
Pourrais-t-on voir ton code afin de mieux visualiser d'une part ton problème et d'autre part te dire ce qui ne va pas ?
Dernière modification par xTG (17-03-2010 21:18:25)
Hors ligne
bonjour xTG, dans la bas j'ai mis dans la cellule : include /entete.php .
il me retourne que le lien mais pas la page.
Merci de ta reponse.
Hors ligne
Saluton,
Peut-on voir le source HTML généré, car là, je crains le pire.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
bjr Maljuna Kris,
je l'envoie
Dernière modification par pilaf (18-03-2010 14:23:07)
Hors ligne
SOURCE GENEREE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- Insère les mots-clés extraits de la DB dans les meta -->
<META NAME="keywords" lang="fr" CONTENT="">
<!-- Insère la description extraite de la DB dans les meta -->
<META NAME="Description" CONTENT="Dishes">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<!-- Insère le titre extrait de la DB dans la balise correspondante -->
<title>Menu</title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<div id="entete">
include ('entete.php')
</div>
<div id="menu_horizontal">
<ul>
<li><a href="index.php?id_page=2">Menu</a></li>
<li><a href="index.php?id_page=3">Daily Specials</a></li>
<li><a href="index.php?id_page=4">Catering</a></li>
<li><a href="index.php?id_page=5">Pastries</a></li>
<li><a href="index.php?id_page=6">Location</a></li>
<li><a href="index.php?id_page=7">Contact</a></li>
</ul>
</div>
<div id="chemin_fer">
U25A0
-> <a href="index.php?id_page=1">Home</a>
-> <a href="index.php?id_page=2">Menu</a>
</div>
<div id="bloc_central">
<div id="menu_vertical">
<ul>
<li>
<a href="index.php?id_page=8">Salads</a>
</li>
<li>
<a href="index.php?id_page=9">Sandwiches</a>
</li>
<li>
<a href="index.php?id_page=10">Specials</a>
</li>
<li>
<a href="index.php?id_page=11">Sides</a>
</li>
<li>
<a href="index.php?id_page=12">Beverages</a>
</li>
</ul>
</div>
<div id="contenu">
Our dishes
</div>
</div>
</div>
<div id="pied_page">
<hr>
Ceci est le pied de page...
</div>
</body>
</html>
____________________
quelqu'un pour me renseigner ?
Dernière modification par pilaf (18-03-2010 16:47:15)
Hors ligne
Si c'est le code généré que tu nous présente là c'est normal.
Si tu stockes une commande PHP dans une variable il sera affiché et non exécuté.
Pour faire ce que tu veux il faut stocker le lien vers le fichier entete.php dans ta base. Puis utiliser la variable que te renvoie les commandes mysql dans la fonction include() de PHP.
Le chemin est un texte, donc étant dans une variable il reste un texte et cela ne gênera donc pas.
Par contre si on se penche niveau sécurité je trouve vraiment affreux de stocker un lien vers un fichier à inclure...
Hors ligne
CODE SOURCE :
Dans index.tpl :
<div id="entete">
{ENTETE}
</div>
<div id="menu_horizontal">
Dans index.php :
// Envoi des variables de la bd au gabarit.
$template->assign_vars(array(
'ENTETE' => $_ENV['entete_page'],
));
Dans mes fonction.php (inclus)
$_ENV['entete_page'] = $tabl_result['Entete_page'];
et dans la base :
include (''entete.php'')
Hors ligne
Bonjour xTG, merci de ta reponse.
Etant debutant, je suis pas sur d'avoir tout compris. Il faut donc que je mette la fonction include dans ma div ? et que je mette le chemin dans la base ?! et j'appelle le resultat dans cet include. Est ce bien ca ? Et au niveau securite, c'est pas super ?!
Quel demarche faudrait il que j'adopte pour plus de securite si c'est pas la bonne demarche ?
Dernière modification par pilaf (18-03-2010 17:41:34)
Hors ligne
La fonction include se doit d'être dans le code. Et le chemin du fichier dans ta base pour ton exemple.
Pour plus de sécurité il faudrait qu'aucun chemin direct ne soit placé dans la base. On ne fait pas d'include de n'importe quoi.
Sinon il suffirait d'une faille dans ton code pour qu'un hackeur vienne mettre le chemin qu'il veut dans ta base à la place de ton enregistrement... Et là c'est la porte ouverte à tous tes fichiers.
Il faut toujours gérer les includes dynamiques grâce à une valeur de référence.
Exemple :
Avec un code comme cela on n'inclut pas n'importe quelle page, uniquement les pages que l'on connait et donc qu'on autorise.
Hors ligne
Merci de ta reponse, je comprends le principe de ce code pour la securite.
mais j'ai l'impression que le switch ne convient pas a ce que je veux faire car l'include est pour l'entete.
Je veux placer cet entete sur toute les pages en include. Mon soucis est que je suis en train de faire le site avec un template. Je ne peux donc pas mettre l'include dedans (j'ai vu que ce n'est pas possible). Il faut faire l'appel de l'include de index.php dans l'index.tpl. Et la je bloque. J'ai pas trouve comment ca fonctionne.
Tu pourrais me renseigner dans ce sens ?
Hors ligne
Y'a une erreur dans le code !
À la ligne 5.
Ce n'est pas « ect » mais « etc » !
<voice mode="Denisot">Désolé...</voice>
Hors ligne
bonjour dionysos,
sympa ta reponse, au moins ca avance
Dernière modification par pilaf (18-03-2010 23:19:38)
Hors ligne
merci de vos patience. j'ai change de solution, celle ci n'est pas adapte.:D
Dernière modification par pilaf (25-03-2010 03:10:58)
Hors ligne