TOUT VOTRE SITE EN UNE SEULE PAGE : INDEX.PHP?MODULE=TRUCBIDULE ...

Signaler
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006
-
Messages postés
84
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
29 avril 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/13335-tout-votre-site-en-une-seule-page-index-php-module-trucbidule

Messages postés
84
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
29 avril 2009

<?php
include("header");
if (isset($_GET["pg"])){
if (file_exists($_GET["pg"])){
include($_GET["pg"]);
}else{
include("accueil.php");
}
}
include("footer");
?>

utilisation: index.php?pg=mapage
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

Fabrice88> J'ai écrit cette source il y a déjà un certain temps, il pourrait être légèrement amélioré. Je le laisse pour que ça donne juste une idée de méthode que chacun peut réimplémenter et personnaliser en fonction de ses besoins.
Pour ce qui est du référencement google, il t'est possible d'utiliser l'url-rewriting pour faire semblant d'avoir plusieurs pages simples. Tu as donc le beurre et l'argent du beurre : tu gères ton site avec un modèle de page unique, mais les url de ton sites restent simples et google croit voir un fichier par page. Saches toutefois que mapage.php?module=monmodule ne pose pas de problème à google.

Tu peux alors avoir quelquechose du genre :
www.monsite.ext/monmodule/mapage/
www.monsite.ext/monmodule/mapage.html
www.monsite.ext/mapage-id.html
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

non ça change pas grand chose... par contre là ou ça peut jouer c'est si tu as trop de variable passées dans l'url... les googlebot apprécient moyennement mais...

www.monsite.ext/mapage.php?module=monmodule

ça pose pas spécialement de problème... .. .
Messages postés
97
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
7 août 2015

sa vaut quoi niveau referencement ?
vue qu'on a plus qu'une page pour le site on risque pas d'avoir un mauvais referencement ?
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Ca n'a pas de sens ce que tu dis PYRRAH... il n'y a pas de raison de régler une faille qui est due au développeur... la faille include n'est pas due à php mais à l'utilisation que tu en fais... en développant correctement ton script tu n'aura pas de faille à l'inclusion... .. .

@ tchaOo°
Messages postés
127
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
15 février 2010
4
Moi ça me rassure pas trop avec la faille des includes sous PHP qui à l'heure actuelle n'est toujours pas réglé...
Messages postés
2
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
26 mai 2007

Une autre solution pour ce genre de script est d'utiliser un switch case comme ca pas de problemme de securité vu que l'on fait l'include en fonction de la variable envoyée. Je sais que c'est plus fastidieex mais c'est plus sécurisant !!

Tchao
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Il reste une faille on peut faire une attaque directory transversal... .. .

function cleanVar($var)
{
return str_replace(array('../','..\\',"\0"),'',$var);
}

if(isset($_REQUEST['module']))
$module = cleanVar($_REQUEST['module']);
else
$module = 'accueil';

if(isset($_REQUEST['page']))
$page = cleanVar($_REQUEST['page']);
else
$page = 'index';

@ tchaOo°
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

La source est maintenant corrigée, sans nécessiter que register_globals soit à On.
Messages postés
13
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
28 mars 2007

slt,
vous avez pas un pt1 d'exemple sans variable global en entier correct...
Messages postés
3
Date d'inscription
mercredi 24 août 2005
Statut
Membre
Dernière intervention
7 octobre 2005

aie !! maintenant j'ai un nouveau probléme !! de taille !!! c tout béte mais tres endicapent !!

a vous de voir !! ici http://mallet_p.club.fr/V4bonne/V4.php a parament tout va bien mais allé dans la rubrique symbole ( un des plu longue ! et la regarder les onglé anime et multimédia !! il ce son multiplier quel et ce prob ??? !!! aidez moi svp tennez si vous voulez voir la page http://mallet_p.club.fr/V4bonne.rar
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

Je ne peux pas t'aider beaucoup plus avec le peu d'information que tu laisse et le flou qui règne sur ton message. Donne un peu plus de détails sur ton problème et je pourrais peut-être t'aider. Essayer d'expliquer correctement un problème permet aussi de se poser les bonnes questions.
Messages postés
3
Date d'inscription
mercredi 24 août 2005
Statut
Membre
Dernière intervention
7 octobre 2005

donc comment je peut faire pour que ca vienne au centre de ma page sans iframe et que quand je clique sur un lien de mon index ca aprraise au millieu ???
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

J'ai écrit ce code du temps où easyPHP mettait les register_globals à On par défaut. Maintenant c'est à Off pour des questions de sécurité (et c'est mieux).

Qu'est-ce qui ne va pas ?
Dans l'exemple de mon script, avec register_globals = On, si j'appelle index.php?mavariable=mavaleur, dans le script PHP la variable $mavariable sera définie avec $mavaleur. C'est dangereux car si le code est mal fait, on peut remplacer la valeur d'autres variables.
maintenant, il faut aller chercher les paramètres passés en url avec $_GET['mavariable'] et non plus avec $mavariable (ou $_POST, $_COOKIE, $_SESSION, ... suivant la méthode de passage de variable).

J'espère que ça pourra t'aider.
Messages postés
3
Date d'inscription
mercredi 24 août 2005
Statut
Membre
Dernière intervention
7 octobre 2005

Bonjour !

moi j'ai un autre probléme j'ai fait toute mes page en php et j'aimerai qu'elle s'affiche au millieu de ma page quand j'ai cliquez sur un lien,a un endroit que j'ai définit sans scoll bare et iframe. j'ai donc fait le code suivant:

dans ma page d'accueil :

<? include("centre.php"); ?>

et dans une autre page qui s'apelle centre pour que puisse arriver les lien au millieu j'ai fait

elseif ($page=='FAQ') {include('faq.php');}

Mais je ne comprend pas pourquoi quand je clique sur le lien faq rien ne ce passe ca ne s'affiche pas au millieu comme je le souhaite et ca fait 1semaine que ej tourne autout du pot !!! SVP aidez moi !!!!
Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
mieux vaut lire ça que d'être aveugle ^^
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
16
Je suis en train de préparer un super code source, et j'avais déjà pris la technique de totofweb. Voici mes conclusions.

Ca permet d'avoir un seul fichier de présentation dans lequel on colle tout ce qu'on veux. Sauf qu'il faut protéger par HTACCESS les fichiers qui serviront de calque: DENY FROM ALL

Il ne faut pas faire un truc du genre:
index.php?page=salut.php

Non, non, non !!! Plutôt:
index.php?page=UnNomDeCode

Et dans index.php, on aurait un tableau:
$Pages array('NomDeCode'> '007.php', 'GirlRubrique'=>'nanas.php', ....... );

Ainsi, les HTACCESS ne pourront jamais être affichés, et surtout le nom des fichiers servant de calques seront aussi protégés.

Reste ensuite à vérifier que le paramètre "page" se retrouve dans le tableau. Dans le cas contraire, on affiche la page d'accueil.

Autre point important. En passant par les tableaux, il suffit de renommer une case pour que tous les liens du site se modifient automatiquement.

Problème pour finir. Dans ces genres de trucs, si on fait "Précédent" dans MSIE, alors tout formulaire est purgé. Pas le droit à l'erreur quand on pste un formulaire, donc...
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Moi comme je l'ais dis sur un autre post voila ce que j'utilise...

<?php
// on définit le chemin du site
$path=$HTTP_SELF;

// on fait la vérif
if( file_exists( "$module.php" ) )

// si ok on inclue
include "$path/$module.php" ;

// sinon retour à l'accueil
else include 'accueil.php';
?>

Le $path sert à empecher l'inclusion d'une page exterieur au site... page qui pourrait contenir un script dangereux... à premiere vue, je dis bien à premiere vue, tu n'y a pas pensé... .. .

C'est plus simple que ta source vu qu'il n'y a qu'une variable... après ça dépend de la taille du site... moi c'est un tout petit site pour une assos... alors je ne pense pas avoir besoins d'appeler une page précise... .. .
Mais le probleme que j'ais c'est que je voudrais authentifier la page appelée pour interdire l'inclusion de page qui n'ont pas à l'être (comme le dit Tortuegeniale) je cherche et si je trouve je fais signe... .. . :o)

Quand au titre de ma page et bien je fais ça...

<title><? echo("°oO cir-K-$module Oo°"); ?></title>

Rien de plus simple... .. . ;o)

Voili voilou... .. .

@ tchaOo°
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

En excluant le fait que se script requière register_globals à on, quelles erreurs vois-tu et quelles corrections peux-tu y apporter ?
Messages postés
4
Date d'inscription
mercredi 12 novembre 2003
Statut
Membre
Dernière intervention
18 novembre 2003

je trouve ton code incomplet et il est remplis d'erreur, c'est beau être "une base" pour commencer, mais ça rien de fameux...

my 2 cents
Messages postés
27
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
7 mai 2007

C'est sympa, je te remercie pour le temps que tu as consacré pour moi
A bientôt
Sharkit
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

Difficile de t'aider sans avoir vraiment le code sous les yeux ... Mais déjà, vérifie que le fichier que tu veux inclure éxiste. Ensuite, regarde pourquoi la variable module est nulle (peut-être que tu t'es trompé quand tu appelle la variable ou que $module est mal initialisée, pour cela fait echo "var_module:".$module."
";).
Messages postés
27
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
7 mai 2007

Hello,
Toujours les memes qui s'accrochent :)
J'ai un soucis au niveau de l'include du module :
include "modules/$module/$page.php";
quand je suis sur la page accueil du site, ça me marque cela :

Warning: main(modules//index.php): failed to open stream: No such file or directory in /home/reunionb/www/soft/index.php on line 11

Warning: main(): Failed opening 'modules//index.php' for inclusion (include_path='') in /home/reunionb/www/soft/index.php on line 11

( je suis sur un site en construction mais pas à la racine pour tester les modules :
http://www.reunion-bourbon.com/soft/index.php )

Si tu peux jeter un oeil et me contacter ce serait sympa


@+++
Sharkit
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

le mieux est bien sûr de te faire un solutions à toi, ça fait travailler les méninges et tu progresse bien ... :)
Messages postés
27
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
7 mai 2007

C'est déjà un bon début pour moi
Je te remercie et ne manquerai pas de te montrer la bête en action ....
Merci encore
Sharkit
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

Ca dépend, il y a pleins de possibilités !

Ce que tu peux faire, c'est de mettre en plus de monmodule/monfichier.php, monmodule/monfichier.titre.txt.
Tu récupère le contenu de ce fichier et tu l'affiche dans <title>

Mais c'est une possibilité parmis pleins d'autres !!! Il y en a surement de meilleures
Messages postés
27
Date d'inscription
lundi 22 septembre 2003
Statut
Membre
Dernière intervention
7 mai 2007

Ouaips,
Mais j'ai encore une question à la con : c'estbien, c'est mignon, mais si tu veux un titre différent à chaque page, tu fais comment ???
@
Sharkit
Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
mouarf ce qu'il fait c ce qu'on appele des pseudo-frames, ça sert a inserer dynamiquement le meme fichier sur plusieur page sans avoir a le foutre sur chaque page, t'arrive faire ça en javascript ? wouah appele billou il va surement avoir besoin de toi :)
Messages postés
5
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
23 juin 2005

Justement ça évite de surcharger le serveur avec des progs qui peuvent parfaitement être exécutés sur le client !

tiens c qui qui vas s'cacher là ?

Pour être plus constructif on pourrait comparer les avantages et inconvénients de ces deux méthodes ...
Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
pff t super toi va te cacher, les calques et le javascript c coté client, la cette source c du php, donc coté serveur ...
Messages postés
5
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
23 juin 2005

Mais on peut faire la même chose avec les calques de Dreamweaver et 1 pointe de Javascript ...
Messages postés
71
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
11 novembre 2004

si ca marche pas c'est surement a cause de votre version de php :
il faut pas faire $page mais $_GET['page']; pour les variables "externes"
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

ah oui, j'oubliait : dans un formulaire, il faut faire :

<form method="post" action="index.php">



on ne peut pas mettre action="index.php?module=marubqieue&page=mapage", alors il faut mettres ces deux éléments en éléments cachés du formulaire
Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
revinc> bah c ce que g dit 2 posts plus haut lol

Va voir ma source, le nombre de gens qui trouve des "failles" dans ce genre de script sans pouvoir le prouver c affolant lol. Avec de tel "hacker" internet n'a qu'a trembler lol
http://www.phpcs.com/article.aspx?Val=403
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017

c à dire ekinoks?
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 novembre 2005

g une question... comment tu fait si tu veux métre un FROM ?
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017

de toute façon avec cette méthode tu peux planquer tous tes fichiers php derrière un htaccess sauf le index.php et ça marchera très bien.

les pagesq que tyu veux pas afficher, tu les protège et c tout
Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
nan il parlé d'afficher les pages que tu veux pas faire affiché non protégé par un htaccess
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017

ouais comme tu rajoute toi-même l'extension php, il n'y a normlalement aucun problème de sécurité
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

Comme je l'ai dit, il s'agit là de la base.

Mais je vois pas trop comment un htaccess pourrait être affiché puisque le fichier doit automatiquement avoir l'extension .php (l'extension est automatiquement ajoutée)
Messages postés
274
Date d'inscription
jeudi 22 février 2001
Statut
Membre
Dernière intervention
7 octobre 2013

TortueGeniale> Ouaip !

JEROMAX
http://www.jeromax.free.fr
Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
Jeromax> Ouais mais la il explique juste comment la page fonctionne. Comme je l'ai dit sur ma source ki parle de la meme chose : c'est pas juste cette page qui doit etre sécurisé mais tout le site. Donc pour protéger ses pages qu'il ne veut pas qu'elles soient affichées y a le htaccess comùe tu dis mais aussi les sessions ...
Messages postés
274
Date d'inscription
jeudi 22 février 2001
Statut
Membre
Dernière intervention
7 octobre 2013

le probleme, c'est que si tu met, à la place de mapage, le nom d'un fichier qui existe, mais qui ne doit pas être visible par l'utilisateur(comme un fichier .htaccess), il va s'afficher en clair sur l'écran du client....

JEROMAX
http://www.jeromax.free.fr
Messages postés
1123
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 juin 2008
1
sécurise ton script : met des expressions réguliere pour filter le nom du dossier et de la page.

De plus j'ai fait une source pour exactement le meme sujet http://www.phpcs.com/article.aspx?Val=403
Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006

N'hésitez pas à laisser vos commentaires ou vos améliorations.

Bien sûr, il ne s'agit là que de la base, on peut faire beaucoup mieux, mais après chacun voit en fonction de son besoin.

Totofweb