PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 11-06-2009 21:17:37

Thomas
Membre
Inscription : 11-06-2009
Messages : 15

Include et $_GET

Bonsoir,


j'ai lu l'article http://www.phpdebutant.org/article68.php de bout en bout et je cale sur la dernière partie du code

<?php

  // On définit le tableau contenant les pages autorisées
  // ----------------------------------------------------
  $pageOK = array('news' => 'news.php',
                  'accueil' => 'accueil.php');

  // On teste que le paramètre d'url existe et qu'il est bien autorisé
  // -----------------------------------------------------------------
  if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
  } else {
    include('accueil.php');   // Page par défaut quant elle n'existe pas dans le tableau
  }

?>

je ne comprends pas cette partie là :

else {
    include('accueil.php');   // Page par défaut quant elle n'existe pas dans le tableau
  }

Le commentaire indique quand elle n'existe pas dans le tableau, mais là elle a bien ete définie....

Donc en gros si j'essaye de faire index.php?page=blabla il doit m'inclure la page "accueil.php"
Seulement moi il la met tout le temps, il n'y aurait pas une manière de faire une redirection vers une autre page plutot qu'un include ?

Merci pour votre aide

Dernière modification par Thomas (12-06-2009 09:34:49)

Hors ligne

#2 12-06-2009 07:51:41

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Include et $_GET

Saluton,
L'ambigüité du français te joue encore un de ces mauvais tours.
Dans

Page par défaut quantd elle n'existe pas dans le tableau

(on passera obligeamment sur l'orthographe approximative) «elle» se réfère à l'index nom de page dans $_GET['page'] et non à la page d'acceuil, d'où ta méprise. Mais la phrase est, en outre, mal tournée, je te le concède volontiers.
Comme quoi, lorsque l'on me reproche de me montrer un peu trop intransigeant sur la syntaxe, la sémantique la grammaire et l'orthographe, on devrait garder présent à l'esprit que le but de ces codifications du langage c'est de veiller, au mieux, si tout le monde les respecte, à la compréhension mutuelle entre les interlocuteurs.
Il s'agit, après tout, de notre protocole humain de communication.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 12-06-2009 08:25:37

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Include et $_GET

Thomas a écrit :

Donc en gros si j'essaye de faire index.php?page=blabla il doit m'inclure la page "accueil.php"

FAUX !!!!!

Pour avoir l'affichage de ta page accueil.php, il faut que ton adresse soit index.php?page=accueil [tel que tu l'as défini dans ton array]


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#4 12-06-2009 09:31:50

Thomas
Membre
Inscription : 11-06-2009
Messages : 15

Re : Include et $_GET

Maljuna Kris > C'est vrai c'est pas forcément clair, mais bon je pense avoir compris

Alnoss>En fait ce que je voulais dire plutôt : c'est que si quelqu'un essaye d'inclure une autre page (qui n'est pas dans le array) ca va m'inclure la page accueil.php (qui elle sera définie par contre)

Comme solution temporaire j'ai supprimé juste cette partie et ca marche très bien, mais est ce que c'est bon quand même ?

Dernière modification par Thomas (12-06-2009 09:35:13)

Hors ligne

#5 12-06-2009 10:05:29

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Include et $_GET

Thomas a écrit :

Comme solution temporaire j'ai supprimé juste cette partie et ca marche très bien, mais est ce que c'est bon quand même ?

Ça marche très bien, c'est à dire ?
Que se passe-t-il si quelqu'un saisit une nom de page qui n'existe pas ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#6 12-06-2009 10:08:13

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Include et $_GET

Alnoss a écrit :
Thomas a écrit :

Donc en gros si j'essaye de faire index.php?page=blabla il doit m'inclure la page "accueil.php"

FAUX !!!!!

Pour avoir l'affichage de ta page accueil.php, il faut que ton adresse soit index.php?page=accueil [tel que tu l'as défini dans ton array]

Non, non, si l'on rentre un nom de page absent de l'array le esle final affiche la page d'accueil.
Ce serait aujourd'hui, je proposerais probablement de gérer cela plutôt avec un tableau associatif.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 12-06-2009 10:28:01

Thomas
Membre
Inscription : 11-06-2009
Messages : 15

Re : Include et $_GET

Maljuna Kris a écrit :
Thomas a écrit :

Comme solution temporaire j'ai supprimé juste cette partie et ca marche très bien, mais est ce que c'est bon quand même ?

Ça marche très bien, c'est à dire ?
Que se passe-t-il si quelqu'un saisit une nom de page qui n'existe pas ?

Si quelqu'un veut afficher index.php?page=blablabla la requête ne s'exécute pas, il ne se passe rien, la page ne change pas je n'ai pas non plus de message d'erreurs. C'est comme si j'ouvrais index.php

Pourquoi on n'est pas obliger d'inclure une page, on ne pourrais pas faire une sorte d'echo en disant "cette page n'existe pas" ou alors rediriger vers une autre page du site

Dernière modification par Thomas (12-06-2009 10:30:04)

Hors ligne

#8 12-06-2009 10:59:05

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Include et $_GET

Le problème de ce genre de situation c'est qu'il faut éviter de donner trop d'infos à d'éventuels hackers, tout en soignant les vrais clients.
Il faut réfléchir, dans quelles conditions un internaute franc du collier peut-il se retrouver à demander l'affichage d'une page inexistante ou non autorisée ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#9 12-06-2009 12:44:59

Thomas
Membre
Inscription : 11-06-2009
Messages : 15

Re : Include et $_GET

Maljuna Kris a écrit :

Le problème de ce genre de situation c'est qu'il faut éviter de donner trop d'infos à d'éventuels hackers, tout en soignant les vrais clients.
Il faut réfléchir, dans quelles conditions un internaute franc du collier peut-il se retrouver à demander l'affichage d'une page inexistante ou non autorisée ?

Normalement il peut pas, ca sera forcément l'internaute qui devra taper le nom a la suite de la page. Après tous les utilisateurs ne sont pas aussi "lambda" que ca, je le sais smile

Hors ligne

Pied de page des forums