Include qui ne fonctionne pas ?

Include qui ne fonctionne pas ? - PHP - Programmation

Marsh Posté le 03-02-2004 à 08:23:54    

Bonjours, je viens de me mettre aux includes pour la conception de mon site web.
Or les includes de marche pas, il n'y a que la premiere page qui s'affiche, et des que je clique sur un lien qui dois executer une include, ça m'affiche la page d'erreur d'int.
Voici le code source de la page index.php :

Citation :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body
<p><a href="includes/index.php?page=home">Home</a></p>
<p><a href="includes/index.php?page=news">News</a></p>
<p><a href="includes/index.php?page=articles">Articles</a></p>
<?php  
include('includes/center.php');  
?>
</body>
</html>


Normallement c'est dans un enssemble de cadre, mais même sans cadre ça foire donc pour une meilleur visibilitée je les ai enlevé.
Voici le code du fichier center.php :

Citation :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
if ($_GET['page']=='home' || empty($_GET['page']) ) {include('includes/home.php');}
elseif ($_GET['page']=='news') {include('includes/news.php');}
elseif ($_GET['page']=='articles') {include('includes/articles.php');}
else {include('includes/404.php');}
?>
</body>
</html>


je suis sous apache 2.
y'a t'il une erreur dans le code source ?
Merci d'avance.
Siron

Reply

Marsh Posté le 03-02-2004 à 08:23:54   

Reply

Marsh Posté le 03-02-2004 à 09:02:26    

quel est le message d'erreur?
le chemin vers les fichier à inclure est en relatif, donc si center est dans le rep includes, tu dois faire include('news.php').

Reply

Marsh Posté le 03-02-2004 à 12:19:19    

Au passage tu passes 2 fois tes entêtes html. Un include n'est pas une frame. Enfin le problème ne vient pas de là.

Reply

Marsh Posté le 03-02-2004 à 12:26:55    

l'include s'apparente à du copier/coller. penses-y !

Reply

Marsh Posté le 03-02-2004 à 12:38:07    

C'est bon, je crois que j'ai trouvé. Apparemment ton index.php est dans le répertoire include cf: includes/index.php?page=home.
Tu dois donc faire des includes sans le includes dans le path puisque tous tes fichiers sont dans le même répertoire.

Reply

Marsh Posté le 03-02-2004 à 12:39:49    

belgique --> lire la réponse de dropsy

Reply

Marsh Posté le 03-02-2004 à 13:15:20    

Relis bien tout jagStang, le problème est plus en amont. D'ailleurs en fait, on pouvait supposer à la base la structure générale suivante:


index.php
+includes
|-center.php
|-news.php
|-....


Et dans ce cas las réponse de dropsy est totalement fausse.
mais apparemment il a plutôt:
 


+includes
|-index.php
|-center.php
|-news.php
|-....


et dans ce cas la solution de dropsy est incomplète :p


Message édité par belgique le 03-02-2004 à 13:16:57
Reply

Marsh Posté le 03-02-2004 à 18:52:21    

Merci pour les réponsses.
En fait j'ai un dossier qui contient le dossier includes  et le fichier index.php, la page d'erreur qui s'affiche c'est la page d'erreur de int quand il trouve pas la page recherchée, sinon c'est quand même bizarre, car la premiere page (home.php), il veut bien l'afficher la premiere fois (c'est la page par défaut), mais dès que je clique sur un lien pour n'importe quel page (comprit home.php), ça foire.
Cela pourrait-il être apache qui foire, si je me souvient bien, php quand je l'ai pris (y'a 2 mois), il m'aitait que c'était un peu une version beta pour apache 2 ?
 
==> belgique, tu veux dire quoi par je passe 2 fois les entêtes html ?

Reply

Marsh Posté le 03-02-2004 à 19:33:22    

Un truc du genre ira mieux.
Enfin le fichier center n'est à mon sens pas très utile.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body
<p><a href="/includes/index.php?page=home">Home</a></p>
<p><a href="/includes/index.php?page=news">News</a></p>
<p><a href="/includes/index.php?page=articles">Articles</a></p>
<?php  
include('center.php');  
?>
</body>
</html>


 


<?php
if ($_GET['page']=='home' || empty($_GET['page']) ) {include('home.php');}
elseif ($_GET['page']=='news') {include('news.php');}
elseif ($_GET['page']=='articles') {include('articles.php');}
else {include('404.php');}
?>
 


 
Dans ton code html quand tu disais href="includes/...." ça veut dire un fichier qui se trouve dans le répertoire include par rapport à ou tu te trouvais soit: includes/includes/...
 
Comme dit plus haut: les includes = copié collé.
T'auras donc dans ton fichier :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body
<p><a href="includes/index.php?page=home">Home</a></p>
<p><a href="includes/index.php?page=news">News</a></p>
<p><a href="includes/index.php?page=articles">Articles</a></p>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
if ($_GET['page']=='home' || empty($_GET['page']) ) {include('includes/home.php');}
elseif ($_GET['page']=='news') {include('includes/news.php');}
elseif ($_GET['page']=='articles') {include('includes/articles.php');}
else {include('includes/404.php');}
?>
</body>
</html>  
</body>
</html>  
 
 
 
 


Message édité par belgique le 03-02-2004 à 19:36:56
Reply

Marsh Posté le 03-02-2004 à 19:51:14    

je suis le seul à avoir vu cette erreur ou quoi?
 

Code :
  1. <body


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 03-02-2004 à 19:51:14   

Reply

Marsh Posté le 03-02-2004 à 20:00:41    

En effet vu que tout le monde regardait le code php :D

Reply

Marsh Posté le 03-02-2004 à 20:23:37    

En fait j'ai comme répertoir :

Citation :


dossier/:
          index.php
          includes/:
                    home.php
                    news.php
                    404.php
                    articles.php
                    center.php


Sinon pour le <body c'est quand j'ai supprimer les cadres pour la lisibilitée, et avec ou sans sa foire tjs.
Et pour le truc ou ont supprime center.php, je prefère laisser ce syteme car ça me semble plus clair.
Sinon y'aurait pas un autre programme (payant ou gratuit) genre apache qui gère le php en natif pour pouvoir tester avec ?

Reply

Marsh Posté le 03-02-2004 à 21:24:47    

Bon alors il y a des fautes partout dans ce que j'ai dit
 

Citation :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body>
<p><a href="index.php?page=home">Home</a></p>
<p><a href="index.php?page=news">News</a></p>
<p><a href="index.php?page=articles">Articles</a></p>
<?php  
include('includes/center.php');  
?>
</body>
</html>


 
 
LE reste me semble bon dans ce que tu as mis à part les balises html.


Message édité par belgique le 03-02-2004 à 21:25:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed