Bonsoir,

Après avoir étudié le tutorial Inclure un fichier dans un autre, grâce à CSS et PHP je me suis lancé dans l'aventure seulement j'ai quelques soucis voir Ma Page Articles. En effet je souhaiterai que lorsque l'on clique sur le lien "TEST 1" que celui-ci s'affichage dans le cadre (pour ne pas dire la frame Smiley confus ) de ma page, seulement j'aimerai faire sans sans avoir à chaque fois à rajouter la liste des liens dans le code source de ma page principale sinon je n'en fini pas de rajouter du
case 'exemple':include ('exemple.txt');break;
si vous voyez ce que je veux dire. Alors existe-t-il un moyen simple de faire des liens d'un page à un autre en conservant le même contour? Ou un moyen rapide de transformer mes anciens liens? (alala c'était si facile en frame)

J'ai également pris en compte la remarque suivante:
a écrit :
Note sur la fonction include : cette instruction est TRES différent des frames ou iframes : elle ne simule pas l'insersion, mais insère vraiment tout le code de la page... et les liens de la page inclue se calculent alors à partir de la page conteneur. Supposons que la page conteneur se trouve à la racine et que la page insérée se trouve dans le répertoire "/galerie".
Tant que la page insérée n'est pas inclue, les liens de la sorte : href="toto.htm" vont rechercher le fichier toto.htm dans le répertoire "galerie".
MAIS, dès que la page est inclue, elle appartient totalement à la page conteneur, il va donc chercher toto.htm ... à la racine !
Conclusion : le meilleur moyen de s'en sortir avec les include est d'utiliser des liens absolus dans les pages inclues (href="http://www.monsite.com/repertoire/lien.htm" et NON href="lien.htm".


et par rapport à cela vous noterez que si on clique sur "TEST 1" à partir de ma page article et le design du site php cela mène à la bonne page (par contre cela perd le design php) et si on clique sur "TEST 2" cela ne marche pas (enfin si ça mène à une autre page que j'ai créée lors de mes tests mais qui n'a rien à voir avec ce sujet). Par contre si on part directement de ma page Articles SANS le design Php là en cliquant sur le "TEST 1" ça échoue et en cliquant sur "TEST 2" ça marche… J'aimerai aussi dans le mesure du possible que mes liens marchent tout le temps…

Merci d'avance pour vos réponses.

PS: J'ai également des problèmes de compatibilité sous mozilla voir mon autre sujet.
Modifié par Jefferson (14 Dec 2005 - 19:31)
Bonjour,

Je crains que ce ne soient pas les "include" qui te posent problème, mais je crains aussi que la version actuelle de ton site contienne de nombreux problèmes que tu n'as pas identifié.

Il y a un problème de DTD, des problèmes de tags (<BR> par exemple), un mélange de conteneurs et de tableaux qui n'a aucune raison d'être, une tentative de contrôler la hauteur de l'affichage qui est vouée à l'échec (notamment en fontion du nombre de barres d'outil utilisées dans le navigateur : j'en ai en général 2, parfois 3)...

As-tu fait un tour sur le validateur du W3C ?

Pour ce qui est des "include" as-tu examiné les chemins de tes liens ?

Le problème vient de là.

Lorsque je vois un site avec une barre de scroll au milieu de la page, en général et à moins que je sois vraiment passionné par le contenu, je zappe.... mais c'est tout à fait personnel : je trouve cela d'une grande laideur et très peu pratique.

Et cela présente quelques inconvénients : il te sera impossible de faire des ajouts dans ton menu "features" par exemple, sans recours à un double scroll de la page, le summum du design !

C'est d'ailleurs ce qui se produit si tu réduis la fenêtre en 800 x 600 ou si tu agrandis la taille des polices.

Enfin "par contre cela perd le design php" : quel rapport entre "design" et "php" ?

Est-ce php qui génère ta feuille de style, qui est la seule en charge du "design" (gestion de la mise en page) ?

Je crois que la première étape de ton travail devrait être de faire une page valide, en tenant compte de ces questions de scroll.
Bonjour,

C'est normal que tes liens ne se comportent pas de la même manière sur tes 2 pages avec et sans design car au départ elles ne sont pas au même niveau de l'arborescence, une dans "_test" et une dans "_test/articles". Regarde les URL appelées par tes liens, elles s'affichent en bas de ta fenêtre lors du survol de test1 et test2. Smiley cligne

Pour ton premier problème est ce que ce serait plus simple en procédant à l'envers: tu gardes les liens entre tes pages et dans chaque page tu fais un "include" systématique (sans "case..." de ce que tu appelles le contour et que je comprends comme étant la bannière et le menu gauche?
Que ces suggestions ne t'empêchent pas de tenir compte également des bonnes remarques de jcm !
Bonne continuation. Smiley smile
Salut les matinaux,

C'est sympa d'avoir des réponses dès le matin, car j'avais posté ce message avant de me coucher hier en voulant m'y ateler tôt (enfin tôt à 10h) et je ne m'attendais pas à avoir des réponses !

Par rapport à ce que tu m'as dit jcm:

a écrit :
Il y a un problème de DTD, des problèmes de tags (<BR> par exemple), un mélange de conteneurs et de tableaux qui n'a aucune raison d'être, une tentative de contrôler la hauteur de l'affichage qui est vouée à l'échec (notamment en fontion du nombre de barres d'outil utilisées dans le navigateur : j'en ai en général 2, parfois 3)...

C'est malheureusement presque si tu me parlais chinois… Ensuite concernant un validateur je n'en connaissais même pas l'existance, pourtant j'avais lu plusieurs trucs au sujet du W3C au cours de mon apprentissage du CSS. Si j'avais su j'aurai peut-être avancé + vite, et personne ne m'en avait parlé dans mon autre sujet, est-ce que l'url de la page est bien http://validator.w3.org/? (Car j'en ai trouvé 8 autres par google)

Concernant mes erreurs de liens, j'ai volontairement fais 2 Tests et je comprend leur fonctionnement, seulement ce que j'aimerai faire c'est que ma page se charge avec les autres éléments autour (menu, news,etc.), je sais que c'est possible si je rajoute à ma page index.php:
case 'exemple':include ('exemple.txt');break;
et qu'en suite je fais un lien
href="index.php?page=exemple"
mais est-ce qu'il n'y a pas une autre méthode plus rapide ? Car ce système fait que ma page index.php contiendra tous les liens de mon site, et vu qu'il va y avoir environ 450 pages (225 en anglais, 225 en français) ça va faire beaucoup pour mon index non ? Donc je me demandais si on pouvait faire autre chose pour que les liens de ma page "nue" (je veux dire par là quand elle est chargée sans tout le reste autour) fonctionnent également avec ce que j'ai appelé "le design php", et qui est en fait la mise en page CSS+Php, mes autres éléments quoi… Désolé si je m'exprime mal je connais à peine quelques termes du jargon.

Par rapport à ma barre de scroll, il n'y en aura pas de seconde à moins d'être en 800 par 600 effectivement, et autrement il n'est pas prévu de rajouter des éléments à ma partie features, c'est une partie qui change mais qui ne grandit pas trop (comme les news).

Concernant ce que tu m'as dit zanzibar
a écrit :
ce serait plus simple en procédant à l'envers: tu gardes les liens entre tes pages et dans chaque page tu fais un "include" systématique (sans "case..." de ce que tu appelles le contour et que je comprends comme étant la bannière et le menu gauche?
Je n'ai pas tout à fait compris… Dans tous les cas mes urls seront de type
href="index.php?page=exemple"
c'est ça ? Seulement plutôt que de mettre le
case 'exemple':include ('exemple.txt');break;
dans ma page index je le mettrai dans la page qui doit charger la page "exemple" c'est ça ? Ah non en te relisant je comprend autre chose… Tu dis "sans "case", un "include systématique" comment fait-on cela ?

Je vais m'ateler à la réparation de mes erreurs, je vous tiens au courant.
Effectivement les bases te manquent...essaie d'apprendre dans les tutos Alsa et Openweb, il y a de nombreuses ressources dispo Smiley smile
Pour ton site: bon alors commence par la DTD, tu ajoutes par ex celle ci :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
Pour faire simple, le fait de placer ces lignes en tête de chacune de tes pages (avant la balise <head>) indiquera au validateur W3C et aussi aux navigateurs de tes visiteurs quel langage tu emploies dans ta page et donc sur quelles règles ils doivent se baser pour l'interpréter et l'afficher. Va voir ce tuto Alsacréations Smiley smile
Ensuite tu pourras aller sur le validateur (l'adresse citée est bonne) pour essayer de corriger les erreurs de tes pages (X)HTML, après ça il y a aussi un validateur pour la css donc idem valide ta css. Quand tout ça sera un peu plus clean, on verra pour le reste !

Pour l'utilisation des includes, je t'expliquais qu'il y a à mon sens 2 possibilités:
-celle que tu tentes d'utiliser:
page d'index contenant le squelette type de tes pages (bannière + menu gauche) et dans laquelle tu viens inclure des contenus en fonction du lien cliqué (lien + ligne php case...include )

-ou bien celle ci:
pages complètes avec liens HTML classiques dans lesquelles pour éviter de remettre le code commun dans chaque page (la partie de code qui correspond à la bannière et au menu gauche) tu vas l'inclure à l'endroit de la page où il devrait se trouver par un "include..."

Relis le tuto d'Alsa sur les include en php, je crois que les deux solutions sont évoquées.
Modifié par zanzibar (14 Nov 2005 - 13:22)
Bonjour,

Jefferson a écrit :
. . . . .
Il y a un problème de DTD, des problèmes de tags (<BR> par exemple), ...

C'est malheureusement presque si tu me parlais chinois… . . . . . , est-ce que l'url de la page est bien http://validator.w3.org/? . . . .

Tu as choisi un xhtml strict : est-ce utile, nécessaire, indispensable ?

Une recherche sur le forum te donnera des éléments à ce propos.

Pour le validateur : oui, ce sera bien.

a écrit :
Car ce système fait que ma page index.php contiendra tous les liens de mon site, et vu qu'il va y avoir environ 450 pages (225 en anglais, 225 en français) ça va faire beaucoup pour mon index non ?


Il serait peut-être intéressant de livrer la version en utilisant la détection du langage du navigateur (HTTP_ACCEPT_LANGUAGE) avec possibilité de choisir la vesrion fr ou en (utile pour ceux qui ont une config en 1 seule langue qui ne serait ni fr ni en.

a écrit :
Je n'ai pas tout à fait compris… Dans tous les cas mes urls seront de type
href="index.php?page=exemple"



Je déconseille nettement ce genre d'url pour ces raisons et je propose un autre système

Ce que je te conseille, c'est de bien réfléchir au contenu de ton site, à la hiérarchie des pages (rubriques, sous rubriques...) avant de programmer quoi que ce soit.

Cela te guidera efficacement dans la mise au point de la présentation de ce contenu, sa structuration, et donc te permettra de définir une politique des menus qui, sur chaque page, devraient permettre de rejoindre facilement n'importe quelle autre page sans pour autant que le menu soit trop long (on ne s'y retrouverait pas).

Un menu présentant d'un seul coup 225 pages serait terriblement long, cela garantirait que seuls de tenaces passionnés viendraient tenter d'y retrouver quelque-chose !

Il faut donc trouver un moyen de subdiviser, de hiérarchiser, et de concevoir les menus en conséquence.

Il faut donc d'abord faire un travail d'analyste avec un souci d'ergonomie.

a écrit :
Tu dis "sans "case", un "include systématique" comment fait-on cela ?


Au point où tu en es, cette question ne se pose pas : sans une idée claire du résultat que tu veux obtenir tout ce que tu feras avec des "switch", des "for" et des "if" risque de te décevoir et te faire perdre du temps.

Pour ce qui est des "include" le second lien que je t'ai donné devrait apporter une réponse.

Enfin, pour développer efficacement, je ne peux que te conseiller Firefox avec Webdeveloper (une des 2 barres d'outil en permanence ouvertes dans mon navigateur, et, je regrette, ton site me donne en plein écran 1024 2 barres de scroll !!!).
Modifié par jcm (16 Nov 2005 - 09:07)
Salut jcm,
La solution que tu préconises est excellente mais j'ai peur qu'elle paraisse un peu complexe à notre ami s'il débute !
Mais je te rejoins totalement sur la nécessité de prendre de la hauteur et de cogiter sérieusement l'organisation du site avant de se lancer dans le codage, surtout avec un tel nombre de pages...d'ailleurs c'est peut être là qu'est le problème, pourquoi commencer avec un site aussi complexe quand on débute ?...et d'ailleurs un site de 225 pages a t il un sens sachant que la plupart des visiteurs n'en liront que deux ou trois max? Smiley eek
Modifié par zanzibar (14 Nov 2005 - 13:38)
Je vais prendre en compte toutes vos remarques et corriger mes erreurs mais en attendant juste une petite précision par rapport à mon site. Sa structure, la hierarchie des menus, etc. et même le contenu même des pages, je les ai déjà !!! Et oui en effet mon site http://www.humanbeatbox.fr est la traduction du site http://www.humanbeatbox.com, je travaille bénévollement en partenariat avec le site en .com pour en faire une version française et proposer du nouveau contenu en français et en anglais (comme des interviews que je vais faire bientôt), mais vu qu'avant mon site je l'avais fait à l'arrach', qu'il y avait plein de problèmes avec les navigateurs, et vu que le site "officiel" anglais est sous la forme d'un forum (ce qui n'est pas très agréable pour naviguer je trouve) je me suis mis en tête de refaire mon site en français et anglais, en ligne proprement, au départ je cherchais quelqu'un pour bosser avec moi vu que je suis plus doué en traduction qu'en webmastering mais je n'ai trouvé personne du coup je me suis lancé dans l'aventure seul. Par rapport à ta remarque zanzibar
a écrit :
d'ailleurs un site de 225 pages a t il un sens sachant que la plupart des visiteurs n'en liront que deux ou trois max?
Crois-moi si le sujet du site t'interresses tu ne fais pas que visiter 2 ou 3 pages ! J'ai dit 225 pages mais je crois que je me suis emballé, il n'y en a pas tout à fait 200, mais c'est susceptible d'évoluer, et à ce moment-là les pages seront rajoutées dans leur catégorie (interviews, articles, tutorials,etc.) avec une page d'accueil par exemple "interviews.html" avec la liste des liens des différentes interviews. Bref tout ça pour dire que oui je débute en html, css, php, etc. mais ce n'est pas pour autant que le contenu du site est un contenu de débutant, j'ai du traduire 35% du site en solo, et là le fait d'avoir mon propre site ça me permettrait de gérer ma propre newsletter, d'informer les gens de mes nouvelles traductions, de passer des annonces pour demander de l'aide pour traduire à plusieurs et aller plus vite, d'avoir un forum francophone,d'avoir une communauté francophone qui ne soit pas obligée de se parler en anglais sur le forum officiel, etc. Bref je trouve que ce serait largement mieux que de mettre vulgairement mes traductions en ligne sur le site original qui est "à la manière d'un forum" ce que les webmasters de celui-ci m'ont demandé de faire (et que j'avais déjà fait mais leur forum avait crashé Smiley bawling ) donc tant qu'à faire j'aimerai avoir mon propre truc… Désolé je m'emballe zanzibar mais j'essaie de me motiver et ton message n'étais pas des + encourageants. D'ailleurs au passage regardes les statistiques "Views" du site, par exemple ici et tu te rendras compte, que ces 200 pages sont énormément vues !! Bon je vais manger car il est déjà 15h20 et que je m'énerve un peut tout seul, ça va faire un mois que je galère là-dessus, j'ai déjà des rendez-vous d'interviews, et j'ai des traductions et du contenu qui attendent impatiemment sur mon disque dur… Allez motivé motivé, cet aprem je dois aller réparer un PC d'un cousin à moi qui a crashé, en rentrant je m'y remet.

@+

Merci pour vos réponses.
Sorry si je t'ai un peu découragé, ce n'était pas le but!
Le fait que tu partes d'un site existant rajoute effectivement des contraintes, donc nos conseils précédents sur la nécessité de bien réfléchir à l'architecture à employer avant de te lancer dans le codage restent d'autant plus vrais. Ensuite essaie de maquetter le fonctionnement de tes menus sur des pages dépouillées.
Hormis la solution d'un forum, tu aurais peut être pu envisager celle d'un CMS...genre SPIP, PLUME ou autre ?
Bonjour, petite suggestion en passant, au lieu d'utiliser switch case, utilise plutôt un tableau associatif, c'est plus simple à gérer dans ce cas très précis, enfin perso je trouve.
Je n'ai pas eu le temps retaffer sur mon site malheureusement, c'est vrai que je suis un peu démotivé, il y a des gens que ça passionne moi ça me prend la tête, il me tarde le jour où mon site sera en place et où je n'aurai plus qu'à traduire mes pages, et à mettre à jour au fur et à mesure avec ma structure stable.

Je n'ai pas compris de quoi vous parliez:

zanzibar a écrit :
CMS...genre SPIP, PLUME ou autre ?


QuentinC a écrit :
utilise plutôt un tableau associatif


Je googlesirai ces termes + tard.

Quand au maquettage du site dépouillé c'est en partie fait en ligne, et en autre partie du mon disque dur, j'ai créé des liens vers des pages vides avec menu, sous-menu, etc. mais il faut que je continue à bosser dessus qu'en j'aurai un peu + de temps.

@+ Jefferson aka JABE l'homme pressé.
Je voulais dire... à la place de :


switch ($_GET['page']) {
case 'a' : include("a.html"); break;
case 'b' : include("b.html"); break;
case 'c' : include("c.html"); break;
default : include("index.html"); break;
}


Je proposais d'adopter cette solution :


$pages = array(
'a'=>'a.html',
'b'=>'b.html',
'c'=>'c.html'
);

if (isset($pages[$_GET['page']]) include($pages[$_GET['page']);
else include("index.html");


Parce que je trouve ça plus facilement maintenable.
Je ne comprend pas cette solution, à quoi elle sert mais j'étudierais ta suggestion en la testant je pense que c'est le + simple.
Salut juste un petit message pour dire que j'avance (lentement mais sûrement du moins je pense), j'ai lu le Tutorial sur le choix de DTD que m'avait conseillé zanzibar et j'ai opté pour le HTML 4.01 Transitional malgré qu'il ne soit pas conseillé par cet article, car cela corrige pas mal de mes erreurs de script notamment avec le contenu de mon site original (anglais) créé à partir d'un forum phbb. Du coup ça m'a permis de passer de 198 erreurs à 38 sur le validateur W3, j'en ai corrigé quelques une moi-même, là après ça m'explique des trucs techniques en anglais, et malgré que je parle bien cette langue ça reste trop technique pour moi pour l'instant, en plus va savoir pourquoi les numéros lignes dont il me parle ne sont pas les même que j'ai si j'ouvre ma page php avec dreamweaver, donc pour que je n'ai plus d'erreur ce n'est pas gagné, enfin je pense qu'il faudrait que je valide correctement mon CSS avant ça… Je tiendrais compte de toutes les remarques que vous m'avait faites déjà dans ce topic et dans l'autre que j'avais créé pour avancer sur mon taff, là ces temps-ci je n'ai pas eu trop de temps pour tester tout ce que vous m'avez dit, lire (en étant concentré du moins) vos liens, etc.

Bref je vais continuer tout ça, en attendant si vous avez d'autre conseils n'hésitez pas.

Merci beaucoup pour votre aide.
Bonjour,

Pour la correction des erreurs HTML :
- afficher la page dans un navigateur et utiliser Afficher > Source pour voir le code HTML final et y repérer les lignes indiquées par le validateur. Puis corriger le PHP en conséquence.
- corriger une erreur à la fois et revalider : le validateur génère en effet très fréquemment plusieurs messages d'erreurs successifs et apparemment sans rapport pour une seule erreur réelle. le nombre d'erreurs réelles est donc toujours inférieur au nombre annoncé, et le premier message est le plus souvent celui qu'il faut prendre en compte.
Modifié par Laurent Denis (17 Nov 2005 - 05:05)
Salut, j'ai essayé ce matin, d'enlever carrément la première partie qui causait problème (celle avec les mots-clés <meta name="keywords") ça n'a fait disparaître que cette erreur-là pas les suivantes… Enfin je tiens bon car 38 erreurs c'est mieux que les 198 que j'avais. Par rapport à afficher le code html dans un navigateur/afficher source je l'ai fait avec internet explorer et avec mozilla firefox et l'outil web developer (conseillé par JCM) seulement je n'ai pas les numéros de ligne, c'est pourquoi pour modifier ma page j'utilisais dreamweaver mais les numéros ne sont pas les même que ceux du validateur W3 ce qui ne me facilite pas la tâche. J'ai feinté en validant en cochant "show source", seulement ça ne va pas très vite non plus puisque je suis obligé de comparer mon code source dans dreamweaver et la source montrée par la validateur. J'ai aussi voulu remplacer mon code source par celui affiché par le validateur W3 mais en faisant un copié collé ça me colle aussi les numéros de ligne Smiley fache du coup je pense que je vais faire ça mais en enlevant ces numéros à la main… Ça risque d'être long mais je ne vois que ça.
Modifié par Jefferson (17 Nov 2005 - 11:01)
Bonjour,

J'utilise Arachnophilia comme éditeur.

En copiant le code source de la page passée au validateur dans Arachnophilia la numérotation des lignes est bonne A CONDITION qu'il n'y ait pas de lignes vides.

Maintenant il y a plus simple : copier l'extrait de ligne érronée que fournit le validateur dans la fenêtre de recherche de ton éditeur, et tu trouves la bonne ligne sans peiner !
Cela fait presque 1 mois que je n'ai pas posté mais je n'ai pas chômé pour autant Smiley langue En effet, vu qu'après de nombreux tests je n'ai pas réussi à utiliser le système de jcm ni la solution de QuentinC j'ai donc continué avec le premier système, et j'ai donc listé toutes mes pages dans ma page index.php avec:

href="index.php?page=exemple"


et

case 'exemple':include ('exemple.txt');break;


Soit 242 fichiers html + 1 index.php c'est à dire 243 pages pour ma partie anglaise; partie que je doublerais une fois que j'aurai corrigé les bugs majeurs de mon menu, etc. pour faire ma partie française, ça me fera donc 486 pages en tout Smiley ravi

En fait par rapport à mon problème de lien, j'ai résolu le problème tout seul comme un grand !

En fait j'ai réalisé que mes problèmes de liens (liens de pages, d'images, d'audio et de vidéo) n'existaient qu'en réseau local, et je me suis rendu compte que ça venait d'une mauvaise configuration d'Easy Php et plus particulièrement ça venait d'une mauvaise configuration Apache, par rapport au dossier choisi comme "DocumentRoot" (si vous voyez ce que je veux dire), en fait j'avais choisi un dossier précédent le repertoire de mon site c'est à dire C:\Dossier\ au lieu de C:\Dossier\MonSite et le dossier "MonSite" contenait le sous dossier "eng" et le sous dossier "images" (c'est à dire que ça donnait C:\Dossier\MonSite\eng et C:\Dossier\MonSite\images) et le sous dossier "eng" lui-même contenait le fichier index.php qui chargeait mes pages se trouvant dans d'autre sous dossiers "C:\Dossier\MonSite\eng\pages" (par exemple) et ces pages chargeaient des images se trouvant dans le dossier images donc j'étais obligé de ressortir de deux répertoires (../../images/etc.) pour que les images marchent directement dans mes pages html, et ça ne marchait pas dans ma page index.php chargeant ces html vu que ce n'était pas dans le même repertoire comme j'expliquais plus haut. Et finalement maintenant que j'ai changé mon DocumentRoot ça marche nickel pourtant ça doit toujours ressortir de deux répertoire, mais bon tant que ça marche je ne vais pas m'en plaindre !

Je vais mettre un petit [Résolu] pour fêter ça, par contre j'ai d'autres problèmes depuis que ça soit au niveau de mon menu, ou au niveau de ma mise en page CSS encore et toujours Smiley confus je vais créé de ce pas des sujets sur ceux-ci. En attendant vous pouvez visionnez mon site (sous IE Smiley ohwell ça passe mieux que sous Firefox pour l'instant désolé) en allant sur http://www.Humanbeatbox.FR/eng. J'ai donc inséré toutes mes pages HTML même si certaines sont encore vides, au moins les liens sont là.