Bonjour,
Je veux réaliser un site dynamique en php.
J'ai déjà préparé le HTML et le CSS.
Mais je voudrais que mes pages soient de ce type :
index.php?cat=accueil
Je voudrais que celon la valeur du "cat", "l'include" du corps de page ne soit pas le même.
Exemple :
si cat=accueil, le include du corps de page affiche la pae "accueil.php".
Quelq'un sait-il faire ça ?
Merci d'avance
Modifié par Papoulain (14 Jul 2011 - 13:51)
Bonjour Papoulain,

j´ai construit une paire de site web sur ce principe dont le mien. J´ai mis tout le texte de quelques pages dans un array sur un document séparé (texte.php). Dans un autre document page.php incluant le texte.php, j´ai déclaré une classe, dans laquelle plusieurs fonctions prennent place, avec des boucles if(isset($_REQUEST['cat']) {print "le corps de ta page\n";}. une des syntaxes peut être :


print "  <a href=\"".$_SERVER['PHP_SELF']."?".cat."\" title=\"cat\">lien vers ta page cat</a>\n";




plus une fonction de ce style:


public function contenu($datas)
  {
    foreach ($datas as $value)
    {
       print $value."\n";
    }
  }


dans ta page index.php incluant page.php, $page=new classe(); $page->fonction(); ou bien $page->contenu($texte[1]); pour récupérer les valeurs souhaitées qui se trouvent dans l´array.

humm, bizarrement, mes explications ne me semblent pas claires Smiley eek
faut dire que la multiplication des require ou include en php, peut très vite tourner à la prise de tête, voire de s´y perdre.
enfin, le principe est là Smiley lol

Si tu as des questions plus précises, heureux de pouvoir t´aider davantage.

Bon courage
j'utilise une autre méthode que je trouve plus simple. Pour l'exemple, j'utilise 3 pages : index.php, cat.php et accueil.php
Voila le code de chaque page :
index.php
<?php header('Location:cat.php?cat=accueil.php?>

cat.php
<html>
<body>
<a href="cat.php?cat=accueil.php">Lien vers la page d'accueil</a>
<?php include $_GET['cat']; ?php>
</body>
</html>

accueil.php contient du code html, rien de spécial
nickos a écrit :
j'utilise une autre méthode que je trouve plus simple. Pour l'exemple, j'utilise 3 pages : index.php, cat.php et accueil.php

&lt;html&gt;
&lt;body&gt;
&lt;a href=&quot;cat.php?cat=accueil.php&quot;&gt;Lien vers la page d'accueil&lt;/a&gt;
&lt;?php include $_GET['cat']; ?php&gt;
&lt;/body&gt;
&lt;/html&gt;


Toujours vérifier les entrées du type : $_GET['cat']. Cette variable peut être modifiée simplement en modifiant l'url de la page = faille de sécurité potentielle.
Ouais t'as un gros problème de sécurité nickos.

Url de la forme :

index.php?page=truc

Fichier index.php


<?php
$path = '/home/user/www/pages/'; // dossier on se trouve tes pages
$page = !empty($_GET['page']) ? $_GET['page'] : 'home'; // si page n'est pas renseigné alors on tente de charger la home
$file = $path.basename($page).'.php';

if (file_exists($file))
{
 require $file; // charge la page si elle existe
} else {
 require $path.'404.php'; // sinon affiche la page 404
}

Modifié par jb_gfx (04 Jul 2011 - 12:19)
C'est vrai que les $_GET ne sont pas sécurisés. Mais je n'avais pas d'autres idées.

FloydinBremen, je n'ai pas tout compris. Peut-tu me donner l'adresse de tes sites ?
Merci
Modifié par nickos (04 Jul 2011 - 17:19)
Aucune donnée provenant du client n'est sécurisée.

Avec ton implémentation on peut s'amuser a fouiller (et bien d'autres choses) sur ton espace web juste en modifiant l'URL.

Ta redirection est aussi un problème : elle casse le bouton retour du navigateur si on arrive d'un autre site.
@Nickos,

a écrit :
FloydinBremen, je n'ai pas tout compris. Peut-tu me donner l'adresse de tes sites ?
Merci


ben mon site c´est le nom de mon profil, donc www.floydinbremen.com
je sais pas si cela va t´aider beaucoup. le site est en 3 langues, donc, pour cette raison, j´ai fait en php plutôt que d´avoir 3 pages d´intro, 3 pages d´index, de menu, etc....donc gain de place sur le serveur. Si tu veux des explications plus détaillées, je fournirai des bouts de code plus explicites.

Bon courage
merci à tous je vais me débrouiller.
est-ce que je peut utiliser un
$_GET
avec la méthode de jb_fx ou c'est pas assez sécurisé ?
comment on fait pour mettre "résolu" à côté du titre du topic ?
Modifié par Papoulain (09 Dec 2011 - 17:46)
Papoulain a écrit :
comment on fait pour mettre &quot;résolut&quot; à côté du titre du topic ?
Il suffit d'éditer le premier message du sujet et d'en modifier son titre.