Header location multiple et session

Résolu/Fermé
oziris - 4 oct. 2016 à 07:41
 oziris - 7 oct. 2016 à 07:52
Bonjour,
j'ai un problème de session et header location, je suis en train de faire un site assez gros pour moi qui dans mes session vérifie si l'utilisateur et connecter ou pas, dans le cas ou il est connecter affiche son pseudo dans le menu et sur toutes les page et lui donne accès a tout le site y compris les endroit ou il peu poster des messages.
dans le cas ou il n'est pas connecter affiche sur le menu de toutes les pages connectez -vous au même endroit et a la place ou le login d'un enregistrer s'affiche et de même pour cet utilisateur non connectez ne peu aller sur 5 page du site permettant d'envoyer des message.

mon problème viens de l'architecture de mon site je pense ayant ouvert un session start en début de page index pour vérifier et afficher le login de l'utilisateur enregistrer ou connectez vous dans les cas des autres et faire une redirection vers la page de connexion dans le cas ou un utilisateur non connecter essaye d'aller sur une page réservé au membres
du coup dans tous le site a chaque fin de requête de lecture je fait mon header location vers une tierce page mais ces header me sorte une erreur sql étant donné que j'en est fait un dans l'index de mon site

ma question : comment faite vous votre architecture pour pouvoir continuer a utiliser les header location (c'est surtout ca qui me gène )pour rediriger les utilisateur a chaque fin de requête, tenir compte du fait qu'il peu ou ne peu pas aller sur certaine page quand il n'est pas enregistrer tous en affichant son login sur toutes les page ou connectez vous si il n'est pas connecter ??

je sais que ma session doit être au tous début de page sans le moindre code avant.
les page de mon site sont toute avec des include
un menu.php contenant les session start et un header location qui est ou pas utiliser en fonction de l'utilisateur connecter ou pas
un corp.php qui change a chaque clic sur le menu et redirige avec un header location suite a une requête effectuer
un pied.php
merci de vos reponse

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
4 oct. 2016 à 14:05
Salut,

Une redirection en php avec header('Location...') doit normalement être suivi de l'instruction exit() pour ne pas continuer l'exécution du code.

du coup dans tous le site a chaque fin de requête de lecture je fait mon header location vers une tierce page mais ces header me sorte une erreur sql étant donné que j'en est fait un dans l'index de mon site

Du coup tu ne devrais pas avoir une deuxième redirection puisque le premier header dans l'index aurait dû stopper la suite de l'exécution du script.

Bonne journée,
0
Bonjour, merci pour la réponse j'ai tester aussi avec le exit() mais fin a faire a l'heure actuelle j'utilise une redirection en JavaScript dans mon session Stuart() afin que mais header location de fin de requête fonctionne mais je pense qu'il doit y avoir un autre moyen de résoudre le problème.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
5 oct. 2016 à 15:36
Je ne suis pas sûr d'avoir bien compris mais il semble qu'il y ai avant tout un problème de logique : il ne devrait pas être possible d'avoir une deuxième redirection puisque la première redirection aura déjà redirigé l'utilisateur.
0
oui cela je les bien compris, mais comment résoudre ce problème récurent
de session pour les connexion et affichage du login sur tous le site tous en interdisant certaine page au utilisateur non connectez
je ne trouve nulle par la réponse, la seule que l'on me donne et de supprimer les redirection et d'afficher des message echo et cela n'est pas ceux que je souhaite faire comment il font sur les gros site pour résoudre ce problème j'ai bien regarder sur certaine source de forum ou autre cms mais il sont trop charger en code pour que je comprenne leur architecture
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 6/10/2016 à 14:10
Au niveau de l'architecture, on utilise souvent un "Front controller", pour faire simple il s'agit d'un fichier (par exemple index.php) qui va recevoir toutes les requêtes du site. Les différentes pages du site sont chargées par ce fichier en fonction des paramètres dans l'URL mais toutes les pages vont forcément passer par ce fichier.
On peut alors effectuer une vérification dans ce fichier et rediriger l'utilisateur non connecté pour toutes les pages.

Dans ton cas si les différentes pages de ton site sont accessibles via différents fichiers php (un fichier pour une page je suppose), il faut donc ajouter cette vérification au début de chacun de tes fichiers php (ou mieux, utiliser un include).
0
oziris > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
7 oct. 2016 à 07:52
salut merci de la réponse le sujet est résolu
oui j'utilise un fichier index comme tu le décrit

un ami m'a fait une petite condition avec un session statut et cela fonctionne
0