8797 sujets

Développement web côté serveur, CMS

bonjour à tous et à toutes,


je viens vers vous car j'ai besoin d'un conseille.

je m'explique.

je souhaite développer un site en php respectant les normes du W3C, mais je suis confronté à un probleme de validation.
J'avais pris l'habitude de développé une page index qui contenait tout, mes menus , mon entete, mon pied de page et une partie dynamique qui revevait le script suivant :

 <?PHP

if (isset($_GET['page']) && strlen($_GET['page']) > 0)
    $mypage = $_GET['page'];
else
    $mypage = "accueil";

if (isset($_GET['rep']) && strlen($_GET['rep']) > 0 )
    $mydir = $_GET['rep']."/";
else
    $mydir = "";

$myfile = $mydir.$mypage.".php";

if (file_exists($myfile)) 
{ 
   
} else { 
    $myfile = "404.html"; 
}

include ($myfile);

?>


et j'avais donc un menu qui contenait les liens sous la forme:

<a href="?rep=pages&page=accueil">Accueil</a>


Cependant le problème est que lorsque je souhaite valider mon code, j'obtiens des messages d'erreur concernant le menu du style :

a écrit :
general entity "page" not defined and no default entity.

<li><a href="?rep=pages&page=competence" class="current_comp"></a></li>



ou

a écrit :
# entity was defined here.

<li><a href="?rep=pages&page=competence" class="current_comp"></a></li>

# Error Line 38, Column 32: XML Parsing Error: EntityRef: expecting ';'.

<li><a href="?rep=pages&page=competence" class="current_comp"></a></li>


voila ... alors en fait j'aurais deux questions la premiere est la suivante :

1) est il préférable (d'un point de vue bonnes pratiques) de faire des pages différentes à chaque fois avec des includes des menus et des header et footer et d'ouvrir cette page a l'aide du menu en appelant la page unique (<a href="acceuil.php">... ou de faire une page référence et d'appeler un contenu centrale de manière dynamique en gardant mon index.php?rep=pages&page=acceuil.

2) si je peux garder la deuxième méthode, quel conseil pouvez vous me donner? je suis meme prete à revoir completement la méthode. J'ai vu qu'il y avait plusieurs maniere de construire un site en php mais j'ai du mal a reconnaitre celle qui faont partie des bonnes pratiques.

je vous remercie par avance. Smiley smile

Aurore
Salut,

la question de la bonne pratique d'une solution en pseudo-frames est pas une question evidente pour moi non plus Smiley confus j'aurais bien utiliser ça pour remplacer les templates a la dreamweaver...(le tant décrié ) ça gagnerait du temps. quand au template ordinaire c'est un peu rébarbatif a faire fonctionner ( genre smarty,phplib )

toujours est-il que j'ai toujours entendu dire que c'était plutôt déconseillé pour des raisons dites sécuritaires que pour des questions de validiter.

sinon bcp d'utilisateur de pseudo-frames (il me semble ) ont aprés besoin de passer par de l'url-rewriting afin d'avoir un meilleur réferencement de leur page.

j'ai fait un petit essai avec un modele pris sur alsa en xthml strict 1 et de lui rajouté un lien en ?page=1&patata=2 moralité même punition que toi.

mais si je remplace le & par &amp; le tout devient valide xhtml strict.

le pb vient apparement que des que le validateur voit un & il s'attend a une entité. en lui passant l'entité &amp; qui donne & il est content.
Modifié par CPascal (28 Jan 2008 - 19:19)
bonsoir et merci Cpascal pour ta réponse . oui j'ai essayé avec &amp; et effectivement ca marche. ceci doit etre du à l'approche xml qui dans la dtd permet de creer des enités qui sont ensuite appelées par & dans le doc xml. je n'avais pas pensé à ça.

par contre ce n'est peut etre pas l'endoirt approprié mais qqn peut-il m'eclairer sur la methode qui vous semble la plus "correct" de gerer votre navigation? avec plusieurs include dauns une meme page appelant respectivement le menu le header le footer avec le contneu de la page ??? enfin je sais pas si je suis tres en claire ??

en gros les bonnes pratiques de développement avec les includes ...
Smiley confus

En plus je trouve que d'un point de vue ergonomique c'est assez correct avec la partie centrale dynamique car cela ne recharge pas la page mais seulement la partie dynamique... ou alos peut etre ne le vois-je pas?

amic Aurore.
dans un cas de pseudo-frames toutes les parties sont bien rechargées et ré interprété.

et non pas juste la partie dynamique. maintenant la différence n'est pas bien grande.

seul de l'ajax te permettrait de rechargé uniquement une partie de la page. c'est hors de portée du fonctionnement même de php.

maintenant sic on a toujours pas d'autre avis sur la validité de la technique. j'aimerais bien savoir moi aussi.
>toujours est-il que j'ai toujours entendu dire que c'était plutôt déconseillé pour des raisons dites sécuritaires que pour des questions de validiter

Le mieux est d'aller lire cet article pour comprendre pourquoi il faut faire attention en utilisant la fonction include(), en gros, il faut juste l'utiliser intelligemment !

Include

Si y a encore des questions, je peux toujours tenter d'y répondre.

>sinon bcp d'utilisateur de pseudo-frames (il me semble ) ont aprés besoin de passer par de l'url-rewriting afin d'avoir un meilleur réferencement de leur page

Je ne suis pas sûr que les liens "url-rewrité" sont nécessairement mieux référencé...