Incude() au lieu de frame avec la Methode GET !

Nouveau WRInaute
Salut

J'avais deja mis en ligne une web site en html. Mais j'ai recontré des probs de referencement car j'ai utilisé les Frames :s. Maintenant je pense la transformer en PHP. Et pour ce debarasser des Frames, j'ai penser que la fonction Include() me suffira. Et voila une petite explication ::

La page INDEX.php contient le Menu en haut. Et dans ses liens ya par exemple : index.php?var=cours.php
et apres ya un script php genre :

<?
$valeur = $_GET['var'];
include ("$valeur")
?>

J'ai pas essayé ce bordel, ma question :: est ce que ca va marcher ? Est ce que c'est la methode juste ? ( Notez que je suis Null en PHP )

Ciao
 
WRInaute passionné
oui, un truc comme ça devrait fonctionner. Attention cependant à bien protéger les entrées possibles pour $_GET[var] sinon tu pourrait te faire hacker assez vite :wink:
 
WRInaute discret
oui, essaye plutot de faire un truc plus restrictif :

index.php?var=cours

<?
$valeur = $_GET['var'];
include ("http://www.tonsite.com/$valeur.php")
?>

et même mieux essaye de traiter la variable valeur pour enlever les caracteres autres que a-z ou 0-9
 
WRInaute passionné
Un conseil plus malin, et qui ne te créera pas de faille de sécurité :

Au lieu de faire UNE PAGE index.php (qui a juste le menu, et qui peut inclure les autres), fais une page avec juste le menu (menu.php ?) et inclus-la dans les autres.

Tu auras donc sur ton site des liens :
cours.php
exercices.php
...

et dans chacun de ces fichiers tu fais une fois
include('menu.php');

Ainsi, aucun problème de sécurité, site plus rapidement indexé par les robots pour ses débuts, et conception plus "logique" de l'architecture du site.

Cordialement,
 
WRInaute occasionnel
oui, je suis plutot d'accord avec dj_apx, c'est une logique de header / footer...

une page : mes-partenaires.php

include("header.php");
echo "voici mes partenaires";
include("footer.php");

Bref, des pages différentes (.php), pas de paramètres, et une maniabilité plus grande...
 
WRInaute discret
index.php?var=cours

<?
$valeur = $_GET['var'];
include ("http://www.tonsite.com/$valeur.php")
?>

C'est pas bon ça.

Il faut faire un truc dans le genre :

index.php?var=cours

<?
$valeur = addslashes(html_entities($_GET['var']));
if(!empty($valeur) && $valeur == "cours"){
include ("http://www.tonsite.com/cours.php");
}
?>

ou s'il y a plusieurs page

index.php?var=cours

<?
$valeur = addslashes(html_entities($_GET['var']));
switch($valeur){
case "cours" : include ("http://www.tonsite.com/cours.php");
case "essai" : include ("http://www.tonsite.com/essai.php");
default : include ("http://www.tonsite.com");
}
?>

Il faut hésiter sur la sécurité. On pourrait même encoder valeur avec la fonction md5() ce qui donnerait :

index.php?var=cours

<?
$valeur = addslashes(html_entities($_GET['var']));
switch(md5($valeur)){
case "KBCACJAIGFUkGJUHK" : include ("http://www.tonsite.com/cours.php");
case "DNVHXIUGYGHDIOGUYDG" : include ("http://www.tonsite.com/essai.php");
default : include ("http://www.tonsite.com");
}
?>
 
WRInaute passionné
chmouc a dit:
Il faut (pas ?) hésiter sur la sécurité.
Heu là tu pousse un peu quand même. Il suffit par exemple de vérifier que le fichier à inclure est bien présent sur le serveur et puis ça suffit (a quelques détails prés) ...
Pas besoin de faire un case....ni un md5()
 
WRInaute discret
jeroen a dit:
chmouc a dit:
Il faut (pas ?) hésiter sur la sécurité.
Heu là tu pousse un peu quand même. Il suffit par exemple de vérifier que le fichier à inclure est bien présent sur le serveur et puis ça suffit (a quelques détails prés) ...
Pas besoin de faire un case....ni un md5()

Ce que j'allais suggérer.

En gros :
Code:
<? 
$mapage = $_GET['page'];
if (is_file("/mondossier/".$mapage.".php"))
    include("/mondossier/".$mapage.".php");

?>
 
WRInaute passionné
Je ne voudrais pas insister lourdement, mais au cas où notre ami lirait en diagonale :
Dj_Apx a dit:
Un conseil plus malin, et qui ne te créera pas de faille de sécurité :

Au lieu de faire UNE PAGE index.php (qui a juste le menu, et qui peut inclure les autres), fais une page avec juste le menu (menu.php ?) et inclus-la dans les autres.

Tu auras donc sur ton site des liens :
cours.php
exercices.php
...

et dans chacun de ces fichiers tu fais une fois
include('menu.php');

Ainsi, aucun problème de sécurité, site plus rapidement indexé par les robots pour ses débuts, et conception plus "logique" de l'architecture du site.

Cordialement,
 
Nouveau WRInaute
Mci a vous tous le" prob est resolu et c'est grace a vous Mci bcp !
L'idee de md5() et du Is_File_Present est Great. Les deux vont renforcer la securité enormement .
Pour l'idee de l'include du Header.php , elle est utile au cas ou j'ai pas Menu Flash .Car ds ce cas à chaque passage vers une autre Page de Mon_Site le menu se reload :?

Mci encore pour vos reponses :D
 
WRInaute passionné
Mais quelque soit la méthode, tant que tu n'utilises pas de VRAIES frames ou du DHTML, ton menu flash va se recharger, mon pauvre ami.
Pour information le md5 ne sert strictement à rien.

Et pour finir, même avec ton file_present, ton site sera sujet à des failles de sécurité avec ce système.
 
Nouveau WRInaute
Ya pas une solution ?! LE Menu Flash prends tellement de tps pour se charger :s
Vaut mieux garder ma version de Web Site en Frame :roll:
 
WRInaute occasionnel
DarK_m00n a dit:
La page INDEX.php contient le Menu en haut. Et dans ses liens ya par exemple : index.php?var=cours.php
et apres ya un script php genre :

<?
$valeur = $_GET['var'];
include ("$valeur")
?>

J'ai pas essayé ce bordel, ma question :: est ce que ca va marcher ? Est ce que c'est la methode juste ? ( Notez que je suis Null en PHP )

Bon ben voilà l'exemple parfait de chose à ne pas faire... TOUS les sites de développement en php déconseille fortement de faire ça...
Dans ton cas en plus c'est extrêment simple, on peut inclure un fichier comme on le veut... Ton site est facilement piratable...
 
WRInaute passionné
Si tu tiens absolument à un menu en flash, le mettre dans une frame est en effet nécessaire si tu ne veux pas qu'il se recharge. Sache que s'il s'agit simplement d'un menu, il n'est pas normal qu'il soit lent à charger. Sache aussi qu'une fois chargé, il est dans le cache du navigateur, donc ce n'est pas "grave" de le recharger.
 
WRInaute discret
Mais à partir du moment où il est préciser que les inclusions se font bien sur des pages qui sont sur le serveur actuel, que peut-il y'avoir comme faille de sécurité ?
 
WRInaute passionné
StarNab a dit:
Mais à partir du moment où il est préciser que les inclusions se font bien sur des pages qui sont sur le serveur actuel, que peut-il y'avoir comme faille de sécurité ?

index.php?page=config.php .... :wink:
index.php?page=index.php ... :wink:
index.php?page=.htaccess ... :wink:
 
Nouveau WRInaute
NoN DJ ,j'ai deja essayer il se recharge a chaque F5 ! et ca deviens insupportable bon je vais me pencher sur les Menu CSS ya un mec qui me les proposer :D
Mci DJ ( c'est bon ton Ava ! ) et a toi Morph1er !
 
Discussions similaires
Haut