Bonsoir,

Je rencontre un gros problème avec Cakephp au niveau de la mise en place de l'authentification.

/app/app_controller.php
Code : PHP - Sélectionner

<?php
class AppController extends Controller
    {
    var $components = array('Auth');
    }
?>

/app/controllers/users_controller.php
Code : PHP - Sélectionner

<?php
class PostsController extends AppController
    {
    var $uses = array('Post','Comment');
    var $components = array('Img');
    var $helpers = array('Text');
    var $paginate = array(
        'limit' => 5,
        'order' => array(
            'id' => 'desc'));

    public function beforeFilter()
        {
        $this->Auth->allow('index');
        }

    public function index()
        {
        $data = $this->paginate('Post');
        $this->set('tabNews',$data);
        }
    }
?>

Et lorsque je me rends sur mon site j'ai droit à ce joli message de firefox "Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas."

Le plus étrange c'est que j'avais commencé ce tutoriel hier et tout marchait bien. Aujourd'hui je voulais le reprendre et bim. La seule chose à laquelle j'ai touché c'est CCleaner avec lequel j'ai vidé pas mal de cookies :(

Donc si quelqu'un a déjà eu ce pb je suis à l'écoute en sachant que google n'a pas su m'aider :/

10 réponses


aemaethe
Auteur
Réponse acceptée

Bon je reviens vous mais cette fois-ci avec la solution à mon problème.

En fait j'avais dans mon layout default.ctp un element qui contenait un requestAction et qui essayait d’accéder à une méthode qui n'était pas dans mon beforeFilter().

Voilà :)

Sa veut dire que tu as une redirection infinie vers la même page dans ton script.
N'étant pas adpetpe à cake, je ne pourrais t'en dire d'avantage :/

aemaethe
Auteur

Oui enfin ça j'avais compris ...
J'ai regardé sur internet mais pas moyen de trouver une solution :-/

Je vois pas non plus.. Mais tu peux virer les public.. Enfin après je sais pas si ça a une influence ou pas mais j'ai jamais eu besoin de mettre des "public"..

aemaethe
Auteur

En fait ça me perturbait au début de pas voir de "public" ou "private" au niveau des fonctions des classes. Mais non, c'est n'est pas ça la cause du pb :/

Dans ton appController tu ne configure pas Auth. Par défaut le composant refuse l'accès a toutes les pages du site. Donc te redirige vers une page login sur laquelle tu n'a pas accès onc te redirige vers une page login sur laquelle tu n'a pas accès onc te redirige vers une page login sur laquelle tu n'a pas accès onc te redirige vers une page login sur laquelle tu n'a pas accès onc te redirige vers une page login sur laquelle tu n'a pas accès et ainsi de suite XD

Regarde le tuto sur la configuration de se composant. Et oublie pas de charger Session aussi.

aemaethe
Auteur

app_controller.php

<?php
class AppController extends Controller
    {
    var $components = array('Session','Auth');

    function beforeFilter()
        {
        $this->Auth->loginError = 'Identifiant ou mot de passe incorrect.';
        $this->Auth->authError = 'Accès interdit.';
        }
    }
?>

app/controllers/fonctionnalites_controller.php

<?php
class FonctionnalitesController extends AppController
    {
    function beforeFilter()
        {
        parent::beforeFilter();
        $this->Auth->allow('index');
        }

    function index()
        {
        $listeFonc = $this->Fonctionnalite->find('all');
        $this->set('listeFonc',$listeFonc);
        }

    function edit($id)
        {
        $this->Fonctionnalite->id = $id;
        if(empty($this->data))
            {
            $this->data = $this->Fonctionnalite->read();
            }
        else
            {
            if($this->Fonctionnalite->save($this->data))
                {
                $this->flash('Fonctionnalitée n° '.$id.' a été modifiée',array('controller' => 'fonctionnalites','action' => 'listerAdmin'));
                }
            }
        }
    }
?>

app/controllers/users_controller.php

<?php
class UsersController extends AppController
    {
    function login()
        {
        }

    function logout()
        {
        }
    }
?>

Je poste pas le fichier de la vue login.ctp

Mais bon voilà le code que j'ai, et avec ça j'ai l'erreur de ma boucle. Le pire c'est que toi au début de ton tuto, sans même avoir créée le controller users_controller, l'accès au site est interdit alors que moi je boucle direct.

:'(

Edit: Si jamais tu réussi à trouver ce qui fait planter tout ça je t'offre à boire dès que je descend dans le sud :p

EDIT: Je suis pas fou, je viens de télécharger les sources du portfolio et bam toujours cette erreur de boucle. Le pire c'est qu'avant j'ai fais ton tuto avec auth sans aucun pb mais depuis que j'ai vidé mes cookies avec ccleaner j'ai ce pb :/

Edit2: Je viens de tester le portfolio sur mon pc portable et même soucis. Je crois que cakephp ne veut pas de moi :(

Les sources du tutos portefolio sont pas bonne j'ai fais le tutoriel, il y a une semaine et je peut dire que le seul moyen c'est de faire le tuto est en cherchant un peu car depuis la nouvelle version, plein de modification sont à apporter ...

Bonne continuation
Corentin

aemaethe
Auteur

Oui enfin j'avais simplement téléchargé pour voir si j'avais bien ce problème de redirection ou pas.

Et oui je l'ai ...

En fessant le tuto je les pas ...

  • En même temps j'ai fais des modifs ^^

Corentin