[resolu ]ma méthode pour empecher l'accés direct à une page. Correct ?

ma méthode pour empecher l'accés direct à une page. Correct ? [resolu ] - PHP - Programmation

Marsh Posté le 07-04-2012 à 17:17:22    

Bonjour
 
Il y a de nombreux topics sur le sujet, mais tres tres souvent il faut passer par des variables de session.  
 
Est ce que c'est pas plus simple de tester une variable à l'entrée de la page ? Et si cette variable n'existe pas, alors rediriger ? Par exemple
 

Code :
  1. <?php if (!defined("EST_PASSE_PAR_INDEX" )) {  header("location: ../../index.php?section=accueil" );} ?>


 
Que pensez vous de cette méthode ? Pas fiable ?  
 
Autre question : comme les pages que je désire protéger sont un peu partout dans des sous répertoires, je ne peux pas définir une redirection "standarde", d'où les "../../" qui trainent dans l'exemple. Est ce grave ?  
 
Merci de vos remarques sur le sujet. Et bonnes fêtes de Pâques ;-)
 
dominique


Message édité par domi_bu le 09-04-2012 à 10:00:32
Reply

Marsh Posté le 07-04-2012 à 17:17:22   

Reply

Marsh Posté le 08-04-2012 à 10:51:00    

1. Oui, tout à fait, on n'est pas du tout obligé d'utiliser les variables de sessions.
 
2. Non pour defined()
 
a) D'abord "Si vous voulez vérifier si une variable existe, utilisez isset() car defined() ne s'applique qu'aux constantes." (source : http://fr2.php.net/manual/fr/function.defined.php )
 
b) Ensuite ce serait intéressant si la variable était définie. Mais comment la définir ?
 
Il faut garder en tête le principe du fonctionnement client-serveur.
Il s'agit non seulement d'un dialogue entre deux côtés, mais en plus d'un dialogue où chaque côté n'a pas quasiment pas de mémoire.
C'est comme deux très vieilles personnes qui parlent ensemble. Ils oublient le contexte d'une phrase à l'autre.
 
Si l'on veut suivre un fil de conversation client/serveur, sans passer par des variables de session et sans passer par des cookies,
il faut obligatoirement faire transférer une variable à chaque submit (côté client) et à chaque création dynamique de page (côté serrveur).
 
Cela demande un travail beaucoup plus important que d'utiliser un simple defined() (ou un isset()), mais c'est tout à fait faisable, et je l'ai d'ailleurs fait moi-même plusieurs fois.


Message édité par billgatesanonym le 08-04-2012 à 10:51:54
Reply

Marsh Posté le 09-04-2012 à 10:00:13    

ok merci pour ta réponse bill ! Donc j'en conclue que ce que j'ai fait est correcte. Je généralise à toutes mes pages. Merci
 
Dominique

Reply

Marsh Posté le 09-04-2012 à 14:59:35    

Juste une question, c'est quoi l'interet d'absolument vouloir eviter les sessions ?

Reply

Marsh Posté le 09-04-2012 à 15:10:11    

lo
 
Parce que c'est plus consommateur que une simple variable. Me trompe je ?  
 
Dom

Reply

Marsh Posté le 09-04-2012 à 15:23:10    

Effectivement, ca coute un peu plus.
Mais si tu veux coder proprement, l'optimisation passe en dernier, et la clarté en premier. Dans ce cas la, la propreté, c'est les sessions.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed