Salut tout le monde
D’abord un grand merci à Grafi pour la qualité de cette formation.
Je viens de finir cette série de tutorial " Développer un site de A à Z" je me familiarise un peu avec l’architecture MVC je suis encore débutant est je commence à développer mais propre besoin et je tombe sur un problème de boucle infini que je n’arrive pas à résoudre ca fais 2 jour, Bon le besoin que je développe et de rendre l’application fermer comme Facebook ou Twitter par exemple tous les pages son fermer l’utilisateur ne peut pas accéder sont être authentifier.
Donc je dois développer le scripte au niveau du fichier " hook.php" mais le problème je vois que l’application tourne dans une boucle infini voile la condition que j’ais ajouter :

<?php
if($this->request->prefix =='admin'){
    $this->layout = 'admin';
    if(!$this->Session->isLogged() || $this->Session->user('role') != 'admin'){
        $this->redirect('connexion.php');
    }
}
if(!$this->Session->isLogged()){
   $this->redirect('connexion.php');
}
?>

J’ai bien essayé avant de poster ma question et merci d’avance pour vos repenses.

12 réponses


khomalli
Auteur
Réponse acceptée

Le code que tu m’as donné tourne dans une boucle infinie j’ais tester avant ce code car quand la redirection redirige l’utilisateur a la page connexion.php la condition dans le fichier hook.php est tester une autre fois donc une autre redirection a la page connexion.php et ça tourne j’ais modifier le code et ça marche pour le moment merci infiniment @Benjamin Garcia BP pour ton aide.

<?php
 if(!$this->Session->isLogged()){
    if($this->request->url != '/connexion.php'){
    $this->redirect('connexion.php');
    }
 }else{
   if($this->request->prefix =='admin'){
    $this->layout = 'admin';
    if(!$this->Session->isLogged() || $this->Session->user('role') != 'admin'){
        $this->redirect('connexion.php');
    }
}
}
?>

Salut, essaye sa :

<?php
if($this->request->prefix =='admin'){
    $this->layout = 'admin';
    if(!$this->Session->isLogged() || $this->Session->user('role') != 'admin'){
        $this->redirect('connexion.php');
    }
}else{
 if(!$this->Session->isLogged()){
   $this->redirect('connexion.php');
 }
}
?>
khomalli
Auteur

merci @Benjamin Garcia pour la repence mais ta changer quoi ?

Bonjour, il suffisait juste de mettre un "else" au niveau du "if($this->request->prefix =='admin'){"

khomalli
Auteur

cette methode marche pas :(

khomalli
Auteur

personne n'a une idée ?

Explique moi ton problème plus précisément

khomalli
Auteur

Le problème que je dois fermer les pages du site n'importe quelle page comme Facebook tous les pages ne sont pas accessible que si le membre est connecté

En gros tu veut faire une restriction d'accès aux pages ??

khomalli
Auteur

nn c'est pas une restriction d'accès aux pages

khomalli
Auteur

Par exemple j’ai ces pages dans mon application
www.monsite.com/profil.php
www.monsite.com/message.php
www.monsite.com/edit.php
www.monsite.com/*.php
Tous c’est page l’utilisateur doit être connecté pour les voire comme l’accès au page qui gère la gestion des articles je pense que c’est bien expliqué je peux faire un teste dans la page index du webroot et je vais régler le problème mais je veux faire comme le système que Grafi a fait dans la vidéo pour avoir une structure mvc propre une manipe dans le fichier hook.php et tous et réglé

Re, essaye sa alors :

<?php
 if(!$this->Session->isLogged()){
   $this->redirect('connexion.php');
 }else{
   if($this->request->prefix =='admin'){
    $this->layout = 'admin';
    if(!$this->Session->isLogged() || $this->Session->user('role') != 'admin'){
        $this->redirect('connexion.php');
    }
}
}
?>

Explication:

Il vérifie si tu est loguer (sinon il te redirige), et vérifie si tu a le préfixe "admin" (sinon il te redirige).