Problèmes de redirection header("Location: ###.php");
Résolu
Geopra
Messages postés
187
Date d'inscription
Statut
Membre
Dernière intervention
-
Geopra Messages postés 187 Date d'inscription Statut Membre Dernière intervention -
Geopra Messages postés 187 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche depuis des heures sans trouver mon erreur, alors si quelqu'un sait, merci d'avance :)
1 - J'ai une page connexion.php, qui est censée me rediriger vers la page d'accueil des utilisateurs connectés : indexauth.php.
2 - Le soucis est que lorsque je me connecte, je suis redirigé vars la page d'accueil des utilisateurs non authentifiés : index.php.
Voici le code de la page de connexion :
https://textup.fr/179791BZ
Voici le code de la page indexauth.php :
https://textup.fr/179792PB
Voici le code de la page index.php :
https://textup.fr/179793ar
je ne sais pas où se situe l'erreur, dans mon raisonnement ou dans mon code, mais dans quelle page... ?
Merci de votre aide ! :)
Je cherche depuis des heures sans trouver mon erreur, alors si quelqu'un sait, merci d'avance :)
1 - J'ai une page connexion.php, qui est censée me rediriger vers la page d'accueil des utilisateurs connectés : indexauth.php.
2 - Le soucis est que lorsque je me connecte, je suis redirigé vars la page d'accueil des utilisateurs non authentifiés : index.php.
Voici le code de la page de connexion :
https://textup.fr/179791BZ
Voici le code de la page indexauth.php :
https://textup.fr/179792PB
Voici le code de la page index.php :
https://textup.fr/179793ar
je ne sais pas où se situe l'erreur, dans mon raisonnement ou dans mon code, mais dans quelle page... ?
Merci de votre aide ! :)
A voir également:
- Redirection automatique php
- Réponse automatique thunderbird - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Logiciel de sauvegarde automatique gratuit - Guide
- Easy php - Télécharger - Divers Web & Internet
- Sommaire automatique word - Guide
2 réponses
Dans ta page de connexion, tu fais
Ca redirige vers indexauth.php tout simplement sans faire transiter ta variable $GET['id']
Et dans indexauth.php ta condition va forcement retourner false
if(isset($_GET['id']) AND $_GET['id'] > 0 AND isset($_SESSION['id']) AND $_SESSION['id'] > 0)
puisque la variable $_GET['id'] n'est pas transmise précédemment.
header("Location: ..\indexauth.php");
Ca redirige vers indexauth.php tout simplement sans faire transiter ta variable $GET['id']
Et dans indexauth.php ta condition va forcement retourner false
if(isset($_GET['id']) AND $_GET['id'] > 0 AND isset($_SESSION['id']) AND $_SESSION['id'] > 0)
puisque la variable $_GET['id'] n'est pas transmise précédemment.
Bon, j'ai tout repris depuis le début, avec HTML simplifié et le PHP simplifié aussi, mon problème maintenant, c'est de savoir si un utilisateur est bien authentifié ou pas
Ci-dessous les codes :
Inscription : https://textup.fr/179908T4
Connexion : https://textup.fr/179910SB
Index.php : https://textup.fr/179911vT
Profil : https://textup.fr/179912d0
Editionprofil : https://textup.fr/179913X1
Donc en gros l'objectif, c'est que si l'user est connecté, il est sur une page d'accueil "index.php?id=####", si l'utilisateur n'est pas connecté, alors il est redirigé vers "index.php".
Même chose pour toutes les autres pages visitées, l'url doit se terminer par l'ID de l'user si il est connecté, sinon, redirection automatique vers index.php ou connexion.php en fonction de l'url entré.
Exemple : Si je ne suis pas connecté et que j'entre dans la barre d'adresse "editionprofil.php?id=25" je dois être redirigé vers "connexion.php".
Si je veux accéder à "index.php?id=25", je suis redirigé vers index.php où un lien pour se connecter sera disponible.
J'ai fais plusieurs tests, la connexion fonctionne, mais la redirection elle non, et je n'ai aucune idée du code que je dois mettre pour y arriver.
PS : Le soucis détecté pour l'intant, est que que je sois connecté ou non, sur la page index.php, lorsque je cliques sur "connexion", je suis redirigé sur la même page index.php... et je ne vois pas d'où provient cette erreur.
Merci d'avance
Ci-dessous les codes :
Inscription : https://textup.fr/179908T4
Connexion : https://textup.fr/179910SB
Index.php : https://textup.fr/179911vT
Profil : https://textup.fr/179912d0
Editionprofil : https://textup.fr/179913X1
Donc en gros l'objectif, c'est que si l'user est connecté, il est sur une page d'accueil "index.php?id=####", si l'utilisateur n'est pas connecté, alors il est redirigé vers "index.php".
Même chose pour toutes les autres pages visitées, l'url doit se terminer par l'ID de l'user si il est connecté, sinon, redirection automatique vers index.php ou connexion.php en fonction de l'url entré.
Exemple : Si je ne suis pas connecté et que j'entre dans la barre d'adresse "editionprofil.php?id=25" je dois être redirigé vers "connexion.php".
Si je veux accéder à "index.php?id=25", je suis redirigé vers index.php où un lien pour se connecter sera disponible.
J'ai fais plusieurs tests, la connexion fonctionne, mais la redirection elle non, et je n'ai aucune idée du code que je dois mettre pour y arriver.
PS : Le soucis détecté pour l'intant, est que que je sois connecté ou non, sur la page index.php, lorsque je cliques sur "connexion", je suis redirigé sur la même page index.php... et je ne vois pas d'où provient cette erreur.
Merci d'avance
Ce qui différencie un utilisateur connecté et un simple visiteur, c'est la variable session.
donc en haut des pages dont tu souhaites limiter l'accès aux personnes connectés, tu mets:
Par contre je vois pas pourquoi tu veux faire transiter le variable id dans l'url puisqu'elle transite déjà de page en page avec la variable session id.
donc en haut des pages dont tu souhaites limiter l'accès aux personnes connectés, tu mets:
if(!isset($_SESSION['id'])){header("location:index.php");}
Par contre je vois pas pourquoi tu veux faire transiter le variable id dans l'url puisqu'elle transite déjà de page en page avec la variable session id.
PS : je debute en php, alors c'est un peu compliqué xD
par
ou tu remplaces
par
Je pense qu'il vaut mieux faire la 2eme solution puisqu'au moment de la connexion, la variable $_GET['id'] te sert à rien.
Elle te servira plus tard pour la page profil.php
pour voir si ta variable est bien récupérée et que sa valeur est bonne et un exit(); pour arrêter l'excecution du script.
Mets aussi des echo juste après tes conditions par exemple:
Et tu avances comme ça tout le long de ton script pour voir ce qui cloche.
En revanche, lorsque je saisis dans la barre d'adresse deconnexion.php, je suis déconnecté, et redirigé vers index.php (normal), et là, quand je clique sur "se connecter" pour allez a la page de connexion, ça fonctionne, j'arrive au formulaire, là, je saisis mes identifiants, et je suis redirigé vers index.php au lieu de indexauth.php, et ainsi de suite.
Donc j'imagine que l'erreur doit se trouver dans la page connexion.php ou la page indexauth.php