[PHP]: Cette page Web présente une boucle de redirection. ERR
AntoninDevpHp
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
AntoninDevpHp Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
AntoninDevpHp Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je suis actuellement en train de créer un template de Back-office, que je pourrais par la suite réutiliser pour mes projets clients etc.
J'ai premièrement créé mon formulaire de connexion, puis un index.php qui reçoit les informations de session, puis un dashboard.php, accessible uniquement si l'utilisateur est connecté.
Cependant, Google me donne ce message d'erreur :
"Cette page Web présente une boucle de redirection.
ERR_TOO_MANY_REDIRECTS".
Mon code se présente de la sorte :
config.php :
Mon login.php :
Mon index.php :
et enfin mon dashboard.php :
Merci à tous ceux qui pourront m'apporter un peu d'aide,
Antonin
Je suis actuellement en train de créer un template de Back-office, que je pourrais par la suite réutiliser pour mes projets clients etc.
J'ai premièrement créé mon formulaire de connexion, puis un index.php qui reçoit les informations de session, puis un dashboard.php, accessible uniquement si l'utilisateur est connecté.
Cependant, Google me donne ce message d'erreur :
"Cette page Web présente une boucle de redirection.
ERR_TOO_MANY_REDIRECTS".
Mon code se présente de la sorte :
config.php :
<?php session_start(); define('SQL_HOST', 'localhost'); define('SQL_USERNAME', 'root'); define('SQL_PASSWORD', 'root'); define('SQL_DBNAME', 'backofficee_commerce'); try { $dbb = new PDO('mysql:dbname='.SQL_DBNAME.';host='.SQL_HOST, SQL_USERNAME, SQL_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); } catch(Exception $e) { exit('Erreur : ' . $e->getMessage()); } if(!isset($_SESSION['id']) AND $_SERVER['REQUEST_URI'] != "../admin/login.php"){ header('Location: login.php'); } ?>
Mon login.php :
<?php include('../include/config.php'); if (isset($_POST['username']) AND isset($_POST['password'])) { $username = $_POST['username']; $mdp = $_POST['password']; $select = $dbb->prepare("SELECT * FROM users WHERE username = :username"); $select->execute(array( ':username' => $username )); $select_q = $select->fetch(); $true_mdp = $select_q['password']; if ($mdp == $true_mdp) { $_SESSION['id']= $select_q['id']; $_SESSION['username']=$select_q['username']; if (isset($_SESSION['id'])) { header('Location: index.php'); } } else { echo "Identifiants incorrects."; } } else { echo 'Veuillez remplir les champs vides.'; } ?>
Mon index.php :
<?php include('../include/config.php'); if (isset($_SESSION['id'])) { header('Location: dashboard.php'); } else { header('Location: login.php'); } ?>
et enfin mon dashboard.php :
<?php include('../include/config.php'); ?>
Merci à tous ceux qui pourront m'apporter un peu d'aide,
Antonin
A voir également:
- [PHP]: Cette page Web présente une boucle de redirection. ERR
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
2 réponses
Salut,
Le problème semble venir de la condition sur la variable $_SERVER['REQUEST_URI'] dans le fichier config.php.
La valeur de REQUEST_URI correspond au chemin pour accéder au fichier login.php via le serveur web (depuis l'extérieur via une requête http), soit /admin/login.php
A ne pas confondre avec le chemin pour accéder à ce fichier via le système de fichier (depuis l'intérieur via un include php par exemple),
soit ../admin/login.php en relatif depuis le fichier config.php.
En arrivant sur la page login.php qui inclue le fichier config.php et puisque la condition n'est pas vrai, on a alors une redirection vers la page login.php, donc on a une redirection en boucle vers login.php.
La correction est donc de modifier la condition du fichier config.php comme ceci :
-> en vérifiant que l'URI pour accéder à la page login.php est bien '/admin/login.php'
Bonne journée
Le problème semble venir de la condition sur la variable $_SERVER['REQUEST_URI'] dans le fichier config.php.
La valeur de REQUEST_URI correspond au chemin pour accéder au fichier login.php via le serveur web (depuis l'extérieur via une requête http), soit /admin/login.php
A ne pas confondre avec le chemin pour accéder à ce fichier via le système de fichier (depuis l'intérieur via un include php par exemple),
soit ../admin/login.php en relatif depuis le fichier config.php.
En arrivant sur la page login.php qui inclue le fichier config.php et puisque la condition n'est pas vrai, on a alors une redirection vers la page login.php, donc on a une redirection en boucle vers login.php.
La correction est donc de modifier la condition du fichier config.php comme ceci :
if(!isset($_SESSION['id']) AND $_SERVER['REQUEST_URI'] != "/admin/login.php"){ header('Location: login.php'); }
-> en vérifiant que l'URI pour accéder à la page login.php est bien '/admin/login.php'
Bonne journée