begin process at 2012 05 31 01:43:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Probleme d'include a partir d'un index.php?page=x


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme d'include a partir d'un index.php?page=x

jeudi 17 février 2005 à 23:49:56 | Probleme d'include a partir d'un index.php?page=x

chatainsim

Bonjour,
 j'ai un probleme avec se script qui affiche en fonction de x dans index.php?page=x affiche la page x.php en include si 'page' est inexistant, alors il affiche une page par defaut. Seulement j'ai un message d'erreur qui apparait qui est celui-ci :


Notice: Undefined variable: page in c:\program files\easyphp1-7\www\photo\anniv_alex01\index.php on line 21


ça c'est si l'adresse est : http://localhost/index.php
si l'adresse est http://localhost/index.php?page=new j'ai bien la page new qui s'inclue dans la page index

voici le bout de script :

<?
    if ($page=="")
    {
    $page="accueil";
    }
    $page_inc=$page.'.php';
    include("$page_inc");
?>


Si quelqu'un a une idée.
Merci

Simon 
vendredi 18 février 2005 à 00:44:00 | Re : Probleme d'include a partir d'un index.php?page=x

JoJo738

Membre Club
Bonsoir, ou plutôt Bonjour,
Oula, c'est vraiment pas securité tt ca !
alors :
<?php
  $page = isset($_GET['page']) ? $_GET['page'] : '' ;
    if($page == 'accueil')  { $include = 'accueil.php'; }
    else if($page == 'news')  { $include = 'news.php'; }
    else { $include = 'accueil.php'; }
  include($include);
?>

Voila, c'est deja mieux !
Ton message apparait, car $page n'existe pas ! ici on test si il existe sinon on lui donne une valeur.


 
vendredi 18 février 2005 à 01:53:12 | Re : Probleme d'include a partir d'un index.php?page=x

kankrelune

Membre Club
Réponse acceptée !
Alors avant tout remplace tes <? par des <?php ça respectera plus les standard (en cas de short_open_tag à off) et utilise $_GET["ma_var"] pour les variables transmise via l'url... plutot que $ma_var... .. .

ensuite il est normal que ta page par défaut ne soit pas incluse car comme l'indique la notice au moment de ta condition ta variable n'existe pas... elle ne peut donc même pas être égale à rien... .. .

tu met $page = '';  au tout début et ce sera ok... mais par contre niveau sécu y a rien... tu fais quoi si je tape  http://www.tonsite.ext/index.php?page=http://www.monsite.ext/un_script_pas_gentil_du_tout.php et ce n'est qu'un exemple... si tu utilise une base de données on peut faire de bonne injections sql aussi...et j'en passe... .. .

Un conseil fais plutot quelque chose style...

// déja on initialise la var
if(isset($_GET["page"])) {
$page = trim($_GET["page"]);
} else {
$page = '';
}

//si elle est appelée et quelle est vide
if(isset($page) && $page == '' ) {
$page = 'page_defaut';
}

// on vérifie que la requete ne contient pas de caractère interdit => activ scripting...
// on accepte donc que les characteres alpha numériques ainsi que les . - _ rien d'autre
$page = htmlspecialchars($page);
$masque =  "^[_a-zA-Z0-9.-]+$";

if(!ereg($masque, $page) {
$page = 'page_defaut';
}

// on vérifie que la page existe bien sait on jamais
if(!file_exists("rep".$page.".php") {
$page = 'not_found';
}


////// à partir de là deux solutions//////////


/// tu as pas 15 000 pages dans ce cas on fait un switch

switch($page) {

case "not_found" :
include("rep/error.php");
break;

case "page_par_defaut" :
include("rep/defaut.php");
break;

case "mapage1" :
include("rep/bla_bla.php");
break;

case "mapage2" :
include("rep/pwet_pwet.php");
break;

}

// tu peux en mettre autant que tu veux mais si tu en
// a beaucoup c'est plus chiant donc tu peux faire à la place...

// on fait un tableau avec les pages autorisées
$page_list = array("page1", "page2", "page3", "page4", "page5", "page10", "page20", "page50", "page75", "page_defaut", "not_found");

// on vérifie qu'elle est dedans
if (!in_array($page, $page_list)) {
$page =  'page_defaut';
}

// et on inclu notre page
include("rep/".$page.".php");

Comme tu l'aura remarqué l'extension n'est pas renseigné dans la var ce qui permet de faire le tri et de n'inclure que la bonne extension et puis c'est plus propre de voir index?page=pwet

Sinon les pages sont dans un repertoire ici nomé rep dans lequel tu met un .htaccess avec dedans

AuthName "admin"
AuthType Basic
<Limit GET POST>
Deny From All
</Limit>

Ce qui empechera l'accès direct au page à tout le monde même toi (toi tu passera via ftp) ainsi elle ne seront consultable que via l'index.php

Voila... ce code est netement améliorable j'ais fais ça de tête, tu pourras trouver d'autres trucs pour le fignoler sur ce site (je me suis d'ailleur "inspiré" d'une source qui est je crois sur ce site concernant le masque) et sur d'autres site... notament pour ce qui concerne la sécurité mais c'est déja un peu mieux que celle de ton code... .. .

Bonne continuation à toi... .. .

@ tchaOo°


l'homme est un loup pour l'homme... .. .
vendredi 18 février 2005 à 01:54:46 | Re : Probleme d'include a partir d'un index.php?page=x

kankrelune

Membre Club
Y a de l'echo... mdrrrr... .. .

@ tchaOo°

l'homme est un loup pour l'homme... .. .
vendredi 18 février 2005 à 16:33:44 | Re : Probleme d'include a partir d'un index.php?page=x

Anthomicro

Réponse acceptée !
Salut,

un simple  if(isset($_GET['page']) AND file_exists($_GET['page'].'.php'))
                {
                      include $_GET['page'].'.php';
                }

inutile de faire des tests de caractères couteux en perfs vu que t'as la fonction file_exists.

a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'ent
vendredi 18 février 2005 à 18:20:51 | Re : Probleme d'include a partir d'un index.php?page=x

kankrelune

Membre Club
T'es sûr que c'est vraiment inutile... en cas de tentative d'écriture via l'url... .. .
Enfin je sais pas... t'en sais plus sûr le php que moi... et compte tenu de ça j'ais préféré deux sécu plutot qu'une... par les temps qui courent... muarf... .. . ;o)

@ tchaOo°


l'homme est un loup pour l'homme... .. .
vendredi 18 février 2005 à 18:28:03 | Re : Probleme d'include a partir d'un index.php?page=x

Anthomicro

Bah ton type de vérif n'est utile que si tu fais appel à une base ou si tu fais directement "include $_GET['page'].'.php'; (enfin bon là faut être suicidaire)

bref le file_exists() empêche toute tentative de fraude de ce côté là.

a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'ent
vendredi 18 février 2005 à 20:27:45 | Re : Probleme d'include a partir d'un index.php?page=x

kankrelune

Membre Club
Merci bien... me coucherais moins con ce soir (comme tout les soir... )... .. .

@ tchaOo°


l'homme est un loup pour l'homme... .. .


Cette discussion est classée dans : page, php, probleme, include, index


Répondre à ce message

Sujets en rapport avec ce message

Probleme d'include a partir d'un index.php?page=x [ par chatainsim ] Bonjour,  j'ai un probleme avec se script qui affiche en fonction de x dans index.php?page=x affiche la page x.php en include si 'page' est inexista Comment inclure une page dans une page qui est déjà inclu lui même? [ par faculd ] Bonjour à tous,Je voudrai inclure une page dans une autre page qui est elle aussi déjà incluse dans une autre page. Je m'explique:J'ai mon fichier ind Include php [ par FearBlue ] Salut a tous !!!!J'ai un probleme avec la fonction includema page index.phpcontient un code genre ca:include($page);lorsque je fais ca :index.php?page probleme avec htaccess [ par kishkaya ] voila mon probleme est simple. Je sais que c'est pas important mais j'aimerais comprendre pourquoi : ErrorDocument  404  http://monhebergeur/index.ph Problème Include. [ par Aaron ] Bonsoir, J'écris ce message parce que j'ai un soucis au niveau des includes dans une mes pages. En effet, j'ai créé un espace-membres avec une page d Problème : Notice: Undefined index [ par dalma101 ] Salut, je recode mon site dont voici un morceau de la première page "index.php" : Pseudo frames php [ par smoke ] Salut ;) Je débute en php et j'aurais une question toute simple: J'ai mis des includes et des pseudo-frames dans mon index dont voici la structure: -- un include dans un include?? [ par val_lala ] Bonjour,J'ai un petit soucis de include (a moins que ce soit une faute bete de lien...)Voila je dois expliquer vite fait l'arborescense du site pour e Page dynamique avec ?page=xxx [ par thedeejay ] Salutatous! je suis désolé de poster une question(je pense) aussi bete; maisje bugge... Voila: je suis en train de creer un site avec séléction de Que mettre dans l'index.php en Poo ? [ par lolymeupy ] Bonjour, je débute en php objet, et je ne vois pas trop comment gérer le fichier index.php... Est-ce qu'on utilise index.php comme fichier central (un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales