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

Messages postés
57
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
19 juin 2006
- - Dernière réponse : cs_Children
Messages postés
84
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
29 avril 2009
- 9 déc. 2008 à 18:49
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

cs_Children
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
Totofweb
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
kankrelune
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... .. .
cs_fabrice88
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 ?
kankrelune
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°
pyrrah
Messages postés
129
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é...
thor_le_asgard
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
kankrelune
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°
Totofweb
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.
cs_CEPTA
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...
cs_uzma
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
Totofweb
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.
cs_uzma
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 ???
Totofweb
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.
cs_uzma
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 !!!!
cs_Tortuegeniale
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 ^^
cs_grandvizir
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
10 -
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...
kankrelune
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°
Totofweb
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 ?
cs_Do
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
sharkit
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
Totofweb
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."
";).
sharkit
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
Totofweb
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 ... :)
sharkit
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
Totofweb
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
sharkit
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
cs_Tortuegeniale
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 :)
dansap
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 ...
cs_Tortuegeniale
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 ...
dansap
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 ...
AtomWare
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"
Totofweb
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
cs_Tortuegeniale
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
revinc
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017
-
c à dire ekinoks?
cs_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 ?
revinc
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
cs_Tortuegeniale
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
revinc
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é
Totofweb
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)
JEROMAX
Messages postés
278
Date d'inscription
jeudi 22 février 2001
Statut
Membre
Dernière intervention
7 octobre 2013
-
TortueGeniale> Ouaip !

JEROMAX
http://www.jeromax.free.fr
cs_Tortuegeniale
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 ...
JEROMAX
Messages postés
278
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
cs_Tortuegeniale
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
Totofweb
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