erreur placez dans l'index

Eléphant du PHP | 129 Messages

11 août 2007, 00:05

Bonsoir a tous :D

J'en reviens a vous, après une multitude de test je n'arrive pas a placez une erreur sur mon index :cry:
J'essai de faire en sorte que s'il on ecris apres le : index.php?page=
ex : index.php?page=blabla
Cela renvoi directement sur une page d'erreur, ex erreur.php, au lieu que cela envoi sur ma page d'accueil.
J'ai beau placer avant $fichier = $rs[$_GET['r']]; rien a faire :shock:
Mon petit code :
$rs = array( 
   'index'  => 'index.php',
   'coursvideo' => 'page/test/index.php',
);
if ( (isset($_GET['page'])) && (array_key_exists($_GET['page'], $rs)) ) 
{ 
   $fichier = $rs[$_GET['page']]; 
} 
else 
{ 
   $fichier = 'page/accueil/index.php'; 
} 
include('./' . $fichier); 
?>
Merci de votre aide :oops:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 août 2007, 00:26

Pour le moment tu testes uniquement si la variable 'page' est passée en get, et s'il existe un index avec cette valeur dans ton tableau, sinon tu ouvres la page d'accueil.

L'idée serait donc de tester :

Code : Tout sélectionner

SI la variable 'page' est envoyée ET qu'il existe une correspondance dans le tableau -> on ouvre la page demandée SINON SI la variable 'page' est envoyée // et donc qu'il n'existe pas de correspondance, sans quoi on serait dans le si :) -> on ouvre une page d'erreur SINON // aucune variable 'page' envoyée -> on ouvre la page d'accueil par défaut
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 129 Messages

11 août 2007, 09:56

Bonjour, merci pour ta réponse Ryle.
J'ai bien compris, mais en placent un unclude style : include ("erreur.php") ; avant $fichier = $rs[$_GET['page']]; , cela m'affiche mon erreur avec le reste du fichier, en faite je voi pas trop comment l'écrire, mais merci bon week :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 août 2007, 10:30

Bah pourqoi ne pas tout simplement mettre dans $fichier le chemin de la page d'erreur ? ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 129 Messages

11 août 2007, 12:02

Re Ryle :D
Donc je place mon erreur comme ceci :
if ( (isset($_GET['page'])) && (array_key_exists($_GET['page'], $rs)) ) 
 
{ 
   $fichier = $rs[$_GET['page']]; 
} 
else 
{ 
   $fichier = 'erreur.php'; 
} 
include('./' . $fichier); 
Et j'appel mon accueil autrement dans l'index nan ?
Merci pour l'aide hi :oops:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 août 2007, 15:44

ben là ça va effectivement renvoyer sur ta page d'erreur si la page n'existe pas, mais également si aucune page n'est demandée (genre quand on arrive sur le site... c'est un peu dommage :))

Pourquoi ne pas faire un mélange entre tes deux codes pour gérer les 3 possibilités comme suggéré plus haut ? suffit d'utiliser un elseif ou d'imbriquer un nouveau if dans ton else :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 129 Messages

11 août 2007, 19:36

Re Ryle, mais en faite je me demande si je vais pas changer totalement le code de l'index, car en effet je m'apercevoir que je commence a avoir beaucoup de page et qu'il faut que je les déclare dans l'index, une bonne sécu certe mais qui deviens limitement hard rock.
Y a pas un news systeme de code en protec dans le coin ?
Merci :oops: