Page 1 sur 3

développement et php

Publié : 31 déc. 2006, 12:57
par zib
bonjour,

je refait mon site (dédié au modélisme) et en fait, la page d'accueil est faite avec des include("...")
j'ai un menu à gauche fait avec des liste
le corps de la page
et une colonne de liens

voila la page : ici

je voulais avoir si c'était possible de ne modifier que le corps : en cliquant sur un lien du menu on appelle un autre fichier dans le include("...") du corps de la page.

si c'est possible, comment faire?

merci d'avance

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 31 déc. 2006, 13:28
par calimo
En gros, il y a deux possibilités :
  1. soit tu fais plusieurs pages dans lesquelles tu inclus à chaque fois l'entête, le menu et le pied de page, et avec le contenu directement dedans (tu auras des liens comme accueil.php, recherche.php etc) ;
  2. soit tu ne fais qu'une seule page contenant l'entête, le menu et le pied de page et dans laquelle tu inclus le contenu (soit include d'un fichier soit depuis une base de données) en fonction d'un paramètre passé (tu auras des liens comme index.php?page=home ou index.php?page=recherche).
:wink:

Publié : 31 déc. 2006, 13:50
par zib
c'est la deuxième option que je veux.la première est trop lourde je trouve comme l'environnement se répète.
mais la deuxième est peut être plus compliquée à mettre en oeuvre mais c'est celle là que je veux pour des raisons de maintenance

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 31 déc. 2006, 16:48
par calimo
Oui effectivement, c'est probablement la meilleure pour les gros projets (enfin, pour les très gros projets il faut peut-être quelque chose d'encore plus puissant, comme un MVC, mais c'est autre chose et ce n'est pas le cas ici). C'est vite long de répéter tout, j'en ai fait la désagréable expérience avec Smilissimo.

Si tu as besoin de plus de détails, n'hésite pas :wink:

Publié : 31 déc. 2006, 17:11
par zib
ben justement, comment faut faire?
faut mettre quoi, où et comment?

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 01 janv. 2007, 14:11
par calimo
Il faut utiliser la variable $_GET pour récupérer les valeurs passées.
http://ch2.php.net/manual/fr/reserved.v ... iables.get

Publié : 01 janv. 2007, 14:36
par zib
alors, en php j'y connais rien du tout, a part l'instruction echo et encore....
je voulais donc savoir quelle ligne de commande permettait de faire ça, et comment on mettait tout ça en oeuvre.

en html j'arrive à me débrouiller mais en php,.....que dalle!

en gros, j'en suis au début!

merci d'avance quand même!

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 01 janv. 2007, 15:03
par calimo
Pour récupérer le paramètre page, tu devras faire quelque chose un peu comme ça :

Code : Tout sélectionner

$page = $_GET['page']
Ensuite tu fais ce que tu en veux !

Je te conseille de commencer avec un tuto, sinon c'est la galère. Celui-ci me semble pas mal du tout : http://www.siteduzero.com/tuto-3-4-0-un ... c-php.html :wink:

Publié : 01 janv. 2007, 16:45
par zib
je commence à mieux comprendre!!
peut être que j'y arriverai tout seul....

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 01 janv. 2007, 17:12
par zib
donc si je comprend j'aurais des liens qui au lieu de ressembler à :
../pagevoulue.html (ou php peut importe)

j'aurais :
index.php?pagevoulue:=......

j'ai bon?

et dans le include du coorps j'aurais la variable $_GET['pagevoulue'] avec

ou alors j'affecte la valeur de cette variable à une autre variable que je nomme.

c'est ça?

edit : par contre pour la page d'accueil, ça se passe comment? car la variable sera vide...

par contre apparemment c'est pas super sécurisé!

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 01 janv. 2007, 18:27
par Benoit
Tu peux le "sécuriser" en n'acceptant que les valeurs que tu sais exister pour le paramètre "page".

La manière la plus simple c'est un bloc switch.
Par exemple :

Code : Tout sélectionner

// ici, les en-têtes communs pour toutes les pages

$page = $_GET['page'];
if (!$page) {
  // si aucune page n'a été précisée, on affichera la page d'accueil
  $page = 'accueil';
}

switch($page) {
  case 'accueil' : 
    include('accueil.html'); 
    break;
  case 'apropos' :
    include('apropos.html');
    break;
  // etc.
  default : 
    // page non prévue
    echo '<p>La page demandée n'existe pas</p>';
}

// ici, les menus et pieds de page communs pour toutes les pages
Énormément de sites fonctionnent selon ce schéma de base, qui ne demande bien sûr qu'à être peaufiné.

Publié : 01 janv. 2007, 19:10
par zib
Benoit a écrit :Tu peux le "sécuriser" en n'acceptant que les valeurs que tu sais exister pour le paramètre "page".
comment qu'on fait?

ou par exemple, serait-il possible de rajouter mettre dans le include :
http://microoffshore.servlan.org/$page

comme ça si on demande une page qui n'est pas sur mon espace, ... rien de s'affiche...

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 02 janv. 2007, 12:08
par zib
dsl j'avais pas compris.

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 03 janv. 2007, 19:48
par zib
petite question :
est-ce que ce code est correct? :

Code : Tout sélectionner

<?php $page = $_GET['page'].inc.php ?>
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

Publié : 03 janv. 2007, 22:15
par zib
j'ai fini d'écrire le code, ça marche mais je voudrais une confirmation..

Code : Tout sélectionner

<?php 
$extension = ".inc.php";
$page = $_GET['page'];
if (!$page) {
  // si aucune page n'a été précisée, on affichera la page d'accueil
  $page = 'corps';
} 
$page = $page.$extension;
if (file_exists($page)) 
{
  // si la page existe dans le répertoire
  include ("$page");
}
else
{
echo "la page désirée n'existe pas...";
} 
?>
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1