Je débute et php et j'essaye d'organiser mon site en pseudo-frames:
un index.php à la racine du site
et les corps de pages dans un sous-répertoire /pages/qqchose.htm
Les pages sont donc appelées par toto.com/index.php?page=page1
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Steuf
Bonjour,
Bonjour
J'ai lu pas mal d'avertissements sur le passage de paramètres en url. Je voudrais vos avis/conseils sur cette manière de faire.
Oui il est parfois dangereux d'utiliser un système de d'inclusion conditionnel.
J'ai connu deux méthode, l'une via un Tableau, l'autre via un switch, maintenant j'utilise celle avec le switch qui parait la plus "correct".
Ensuite, il faut penser à vérifer que la variable $_GET['page'] ( Ou $_REQUEST['page'] au choix ) existe pas, dans le cas contraire on met une page par défaut. Il faut éffectivement vérifier aussi que cette variable n'est pas vide. Ensuite on utilise le switch, et finalement on vérifie que la page à inclure existe bien sur le serveur. Ce qui donne :
// Iniatiliser les variables dans la condition pour les serveurs en register_globals = ON. $p_include = FALSE; $IncludePseudoFrame = FALSE; if ( isset( $_GET['page'] ) and !empty( $_GET['page'] ) ) { switch( $_GET['page'] ) { case 'accueil' : $p_include = 'accueil.php' ; break; } if( !empty( $p_include ) and file_exists( $p_include ) ) ) { include( $p_include ); } else { include( 'defaut.php' ); } // Ajout facultatif de vérification $IncludePseudoFrame = get_included_files(); unset( $IncludePseudoFrame[0], etc... "C'est à dire les pages incluent avant celle du centre" ); if ( empty( $IncludePseudoFrame ) ) { echo '<h1>Cette page n'existe pas !</h1>'; } } else { include( 'defaut.php' ); }
Il me semble ( Sauf oublie vu l'heure et vu la nuit blanche que je viens de passer ) qu'il n'y a pas de faille dans le code ici présenté.
Merci d'avance
De rien
-- Mon nouveau bébé : http://exinsidephp.free.fr
Bonjour,
Bonjour
J'ai lu pas mal d'avertissements sur le passage de paramètres en url.
Je voudrais vos avis/conseils sur cette manière de faire.
Oui il est parfois dangereux d'utiliser un système de d'inclusion
conditionnel.
J'ai connu deux méthode, l'une via un Tableau, l'autre via un switch,
maintenant j'utilise celle avec le switch qui parait la plus "correct".
Ensuite, il faut penser à vérifer que la variable $_GET['page'] ( Ou
$_REQUEST['page'] au choix ) existe pas, dans le cas contraire on met
une page par défaut. Il faut éffectivement vérifier aussi que cette
variable n'est pas vide. Ensuite on utilise le switch, et finalement on
vérifie que la page à inclure existe bien sur le serveur. Ce qui donne :
// Iniatiliser les variables dans la condition pour les serveurs en
register_globals = ON.
$p_include = FALSE; $IncludePseudoFrame = FALSE;
if ( isset( $_GET['page'] ) and !empty( $_GET['page'] ) ) {
switch( $_GET['page'] ) {
case 'accueil' : $p_include = 'accueil.php' ; break;
}
if( !empty( $p_include ) and file_exists( $p_include ) ) ) {
include( $p_include );
}
else {
include( 'defaut.php' );
}
// Ajout facultatif de vérification
$IncludePseudoFrame = get_included_files();
unset( $IncludePseudoFrame[0], etc... "C'est à dire les pages incluent
avant celle du centre" );
if ( empty( $IncludePseudoFrame ) ) {
echo '<h1>Cette page n'existe pas !</h1>';
}
}
else {
include( 'defaut.php' );
}
Il me semble ( Sauf oublie vu l'heure et vu la nuit blanche que je viens
de passer ) qu'il n'y a pas de faille dans le code ici présenté.
J'ai lu pas mal d'avertissements sur le passage de paramètres en url. Je voudrais vos avis/conseils sur cette manière de faire.
Oui il est parfois dangereux d'utiliser un système de d'inclusion conditionnel.
J'ai connu deux méthode, l'une via un Tableau, l'autre via un switch, maintenant j'utilise celle avec le switch qui parait la plus "correct".
Ensuite, il faut penser à vérifer que la variable $_GET['page'] ( Ou $_REQUEST['page'] au choix ) existe pas, dans le cas contraire on met une page par défaut. Il faut éffectivement vérifier aussi que cette variable n'est pas vide. Ensuite on utilise le switch, et finalement on vérifie que la page à inclure existe bien sur le serveur. Ce qui donne :
// Iniatiliser les variables dans la condition pour les serveurs en register_globals = ON. $p_include = FALSE; $IncludePseudoFrame = FALSE; if ( isset( $_GET['page'] ) and !empty( $_GET['page'] ) ) { switch( $_GET['page'] ) { case 'accueil' : $p_include = 'accueil.php' ; break; } if( !empty( $p_include ) and file_exists( $p_include ) ) ) { include( $p_include ); } else { include( 'defaut.php' ); } // Ajout facultatif de vérification $IncludePseudoFrame = get_included_files(); unset( $IncludePseudoFrame[0], etc... "C'est à dire les pages incluent avant celle du centre" ); if ( empty( $IncludePseudoFrame ) ) { echo '<h1>Cette page n'existe pas !</h1>'; } } else { include( 'defaut.php' ); }
Il me semble ( Sauf oublie vu l'heure et vu la nuit blanche que je viens de passer ) qu'il n'y a pas de faille dans le code ici présenté.