Principe des includes en php??AIDE

Résolu
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   -  
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Juste une précision ....

Pour faire un site en include, je suppose qu'il existe 2 "systèmes"??

1ère dans le fichier index.php, on appel les différents fichiers (haut, menu, contenu, pied)
et la on insère dans le contenu les pages qu'on veux (Accueil, photos, ...)


Exemple:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>
<body>
<div id="global">
<div id="ban">
<img src="graphisme/ban.jpg" width="800" height="152" /></div>
<div id="menu">
<a href="contenu.php?pages=test1"><img src="graphisme/accueil.png" width="16" height="16" border="none" /></a>
<a href="contenu.php?pages=test2">test2</a>
<a href="contenu.php?pages=test3">test3</a>
<a href="contenu.php?pages=test4">test4</a>
<a href="contenu.php?pages=test5">test5</a>
</div>
<div id="contenu">
<?php
if(isset($_GET['p']) && preg_match("/^[a-z0-9]+$/i",$_GET['p'])){
$p=strtolower($_GET['p']);
if(file_exists("./pages/$p.php")){
include "./pages/$p.php";
}
else{
include "./pages/erreur.php";
}
}
else{
include "./pages/erreur.php";
}
?>

</div>
</div>
</body>
</html>

2ème On crée des page php et on insère a chaque fois le code include dans chaque pages.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>
<body>
<div id="global">
<div id="ban">
<img src="graphisme/ban.jpg" width="800" height="152" /></div>
<div id="menu">
<a href="contenu.php?pages=test1"><img src="graphisme/accueil.png" width="16" height="16" border="none" /></a>
<a href="contenu.php?pages=test2">test2</a>
<a href="contenu.php?pages=test3">test3</a>
<a href="contenu.php?pages=test4">test4</a>
<a href="contenu.php?pages=test5">test5</a>
</div>
<div id="contenu">

Ici on insère le contenu (texte)

</div>
</div>
</body>
</html>

Avant de passé à la question suivante est ce que je suis dans le bon?

Ps au niveau du code 1 est ce que c'est juste?

Merci de votre aide
MD
A voir également:

8 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Le script est à mettre sur ta page "contenu.php".
Le mieux est que tu supprimes cette page contenu.php et que tu changes tes liens vers index.php?pages= ...
1
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   5
 
Ok ça sa fonctionne mais le contenu ne s'affiche tjs pas

Code source
http://paste.pocoo.org/show/160570/

Code page menu
http://paste.pocoo.org/show/160572/

Merci
MD
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Le include incluent le code source dans celui de la page qui fait l'include, et pas le "résultat visuel" (comme les iframes).
Donc si sur ta première page tu mets un doctype et que tu en mets un aussi sur la page inclue, alors tu auras deux doctype dans le code source de la page principale.
Si tu regardes le code source généré, tu comprendras vite le principe.
0
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   5
 
J'ai du mal avec les liens de la page menu

Dans le code numéro 1, j' appels les pages mais j'ai déjà une erreur (il m'affiche la page erreur)
adresse url :
http://www.eurojudo.be/bushido

Tu sais jeter un coup d'œil au site ainsi que sur le code
Merci
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Je t'ai un peu modifier ton script : http://paste.pocoo.org/show/160557/
Il ne te reste qu'à créer les pages "pages/test1.php", "pages/test2.php", ...
Ces pages ne doivent contenir que ce que tu mettrais entre <div id="contenu"> et </div> donc pas de doctype, title, ...
0
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci pour ton aide mais j'ai inclus le script que tu as donné et j'ai toujours ce problème de page blanche qui s'ouvre...

Il manquait une parenthèse aussi (enfin je pense à la ligne 29)
Tu peux voir le résultats toujours sur http://www.eurojudo.be/bushido

Merci pour ton aide
MD

Voila le code source
http://paste.pocoo.org/show/160563/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Essaye en remplaçant "array_key_exists" par "in_array"
0
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   5
 
C'est vraiment bizarre car ca ne fonctionne pas et en plus sur test3 j'ai une erreur php
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Tout fonctionne sauf la page d'accueil quand il n'y a pas ?page=test1 dans l'url.
Avant la ligne "if(array_key_exists($_GET['pages'], $pages_autorisees)) {", ajoutes :
if(empty($_GET['page'])) $page = 'test1';
0
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   5
 
Non rien à faire
Je vais changer le code je te tiens au courant

MD
0
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   5
 
Voilà

http://paste.pocoo.org/show/160588/

Quand pense tu au niveau sécurité?

Faut encore que je mette la fonction pour arrivé sur page accueil et page erreur

Dit moi quoi

Merci
MD
0
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   5
 
Voila code final je crois que je vais en rester la ....
Quand pense tu?
Encore merci pour ton aide
MD

<?php

if(isset($_GET['page']))
{
$page = './pages/' . $_GET['page'] . '.php';
if(file_exists("$page"))
{
include($page);
}
else
{
include("./pages/erreur.php");
}
}
else
{
include("./pages/test1.php");
}

?>
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Si ça te convient ...
Sauf que niveau sécurité, ce n'est pas terrible : on peut inclure n'importe quel fichier, même si il n'est pas dans le répertoire "pages"
0
spirou0069 Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   5
 
Ah ok je vais regarder à cela

Encore merci pour ton aide qui m'a été précieuse

Après une semaine de séchage sur ce problème j'arrive à mes fins

Je regarde pour la sécurité ou as tu des idées?

Encore merci

MD
0