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

Utilisateur anonyme - 11 juin 2003 à 21:26
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
9 déc. 2008 à 18:49
<?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
Utilisateur anonyme
21 déc. 2007 à 20:06
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
21 déc. 2007 à 19:02
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
21 déc. 2007 à 08:32
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
2 déc. 2007 à 14:14
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°
Utilisateur anonyme
30 nov. 2007 à 19:03
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
27 mai 2007 à 16:09
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
3 avril 2007 à 02:26
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°
Utilisateur anonyme
2 avril 2007 à 22:21
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
2 avril 2007 à 19:11
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
7 oct. 2005 à 18:31
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
Utilisateur anonyme
26 août 2005 à 19:37
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
26 août 2005 à 15:09
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 ???
Utilisateur anonyme
26 août 2005 à 15:05
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
26 août 2005 à 14:54
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
22 juin 2005 à 13:59
mieux vaut lire ça que d'être aveugle ^^
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
22 juin 2005 à 12:11
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
26 déc. 2004 à 14:16
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°
Utilisateur anonyme
16 nov. 2003 à 16:42
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
13 nov. 2003 à 22:37
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
22 oct. 2003 à 13:34
C'est sympa, je te remercie pour le temps que tu as consacré pour moi
A bientôt
Sharkit
Utilisateur anonyme
22 oct. 2003 à 13:26
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
22 oct. 2003 à 00:43
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
Utilisateur anonyme
19 oct. 2003 à 21:07
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
19 oct. 2003 à 19:26
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
Utilisateur anonyme
19 oct. 2003 à 19:06
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
18 oct. 2003 à 11:56
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
15 juil. 2003 à 21:06
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
15 juil. 2003 à 15:33
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
14 juil. 2003 à 21:55
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
14 juil. 2003 à 18:03
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
30 juin 2003 à 14:00
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"
Utilisateur anonyme
12 juin 2003 à 13:59
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
12 juin 2003 à 13:34
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
12 juin 2003 à 13:28
c à dire ekinoks?
cs_ekinoks Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 novembre 2005
12 juin 2003 à 13:26
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
12 juin 2003 à 13:21
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
12 juin 2003 à 13:14
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
12 juin 2003 à 13:13
ouais comme tu rajoute toi-même l'extension php, il n'y a normlalement aucun problème de sécurité
Utilisateur anonyme
12 juin 2003 à 11:59
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 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013
12 juin 2003 à 10:50
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
12 juin 2003 à 10:40
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 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013
12 juin 2003 à 09:10
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
11 juin 2003 à 23:10
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
Utilisateur anonyme
11 juin 2003 à 21:26
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
Rejoignez-nous