Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > CakePHP
CakePHP Forum d'entraide sur le framework PHP CakePHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2011, 09h49   #1
Membre éclairé
 
Avatar de Charvalos
 
Homme
Étudiant
Inscription : juin 2010
Messages : 143
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 19
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 143
Points : 363
Points : 363
Envoyer un message via MSN à Charvalos Envoyer un message via Skype™ à Charvalos
Par défaut Problème avec les logins

Salut tout le monde !

Je me tourne vers vous car j'ai un problème que je n'arrive pas à résoudre.

Je m'explique :

J'ai crée un formulaire de connexion afin de pouvoir accéder à mon backoffice.
Une fois que je suis connecté en admin, tout va bien, je peux modifier / supprimer une page et je peux accéder au site et voir les pages.
Par contre, là où je ne comprends par, c'est que dès que je ne suis plus connecté, je suis automatiquement redirigé vers la page de login et ce, même si j'accède au pages du site qui sont censées êtres visible par tous.

Voici mes codes :

UsersController
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php
class UsersController extends AppController
{
    //Fonction qui permet de se loguer
    function login()
    {
        if($this->request->is('post'))
        {
            if($this->Auth->login())
                return $this->redirect('/admin');
        }
    }
 
    //Fonction qui permet de déloguer
    function logout()
    {
        $this->Auth->logout();
        $this->redirect('/');
    }
}
AppController
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
class AppController extends Controller
{
    public $helpers = array('Form', 'Html', 'Session');
    public $components = array('Session', 'Auth');
 
    function beforeFilter()
    {
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'admin' => false);
        $this->Auth->authorize = array('Controller');
 
        if(!isset($this->params['prefix']))
        {
            $this->Auth->allow();
        }
    }
}
default.ctp
Code :
1
2
3
4
5
6
 
<div id="contenu">
                <a href="<?php echo $this->Html->url(array('controller' => 'pages', 'action' => 'index', 'admin' => true)); ?>">Administration</a>
                <a href="<?php echo $this->Html->url(array('controller' => 'users', 'action' => 'logout', 'admin' => false)); ?>">Se déconnecter</a>
                <?php echo $content_for_layout; ?>
</div>
Si une âme charitable pouvait bien me dire pourquoi cela ne veut pas fonctionner, je lui en serai reconnaissant.

Merci d'avance !
__________________
"Non, je ne dois rien à personne
Et je ne méprise personne".


Je ne réponds pas aux message techniques par MP !
Charvalos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 12h21   #2
Membre éclairé
 
Avatar de EIN-LESER
 
Homme Sebastian
Développeur Web
Inscription : mai 2008
Messages : 380
Détails du profil
Informations personnelles :
Nom : Homme Sebastian
Âge : 35
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 380
Points : 318
Points : 318
Envoyer un message via MSN à EIN-LESER
Dans le redirect pourquoi ne pas simplement faire le redirect vers ton index.

Sinon essaye de fermer la session après delog. J'ai eu un problème comme sa il y a quelque temps et cela venait de la session qui ne voulait pas comprendre le changement de statut ^^
__________________
Spécialiste des questions bêtes

L'urgent est fait, l’impossible est en cour, pour les miracles prévoir un délai

Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour
EIN-LESER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 12h29   #3
Membre éclairé
 
Avatar de Charvalos
 
Homme
Étudiant
Inscription : juin 2010
Messages : 143
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 19
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 143
Points : 363
Points : 363
Envoyer un message via MSN à Charvalos Envoyer un message via Skype™ à Charvalos
J'a rajouté

Code :
1
2
3
4
 
<?php
$this->Session->delete();
?>
mais cela ne semble pas fonctionner.

Merci pour ton aide
__________________
"Non, je ne dois rien à personne
Et je ne méprise personne".


Je ne réponds pas aux message techniques par MP !
Charvalos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 13h13   #4
Membre éclairé
 
Avatar de EIN-LESER
 
Homme Sebastian
Développeur Web
Inscription : mai 2008
Messages : 380
Détails du profil
Informations personnelles :
Nom : Homme Sebastian
Âge : 35
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 380
Points : 318
Points : 318
Envoyer un message via MSN à EIN-LESER
Tu a essaye de lui indiquer un redirect vers une page en particulier dans ta function logout?
__________________
Spécialiste des questions bêtes

L'urgent est fait, l’impossible est en cour, pour les miracles prévoir un délai

Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour
EIN-LESER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 13h16   #5
Membre éclairé
 
Avatar de Charvalos
 
Homme
Étudiant
Inscription : juin 2010
Messages : 143
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 19
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 143
Points : 363
Points : 363
Envoyer un message via MSN à Charvalos Envoyer un message via Skype™ à Charvalos
Idem, dès que je ne suis plus en admin, je suis systématiquement redirigé vers le formulaire de connexion.

Je commence à désespérer....
__________________
"Non, je ne dois rien à personne
Et je ne méprise personne".


Je ne réponds pas aux message techniques par MP !
Charvalos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 13h18   #6
Membre éclairé
 
Avatar de EIN-LESER
 
Homme Sebastian
Développeur Web
Inscription : mai 2008
Messages : 380
Détails du profil
Informations personnelles :
Nom : Homme Sebastian
Âge : 35
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 380
Points : 318
Points : 318
Envoyer un message via MSN à EIN-LESER
et tu a tué ta session? sa c'est pas logique.

Quand tu va sur le site sans te logger Cela te fait la même chose? Ou les autres personnes peuvent elles naviguer normalement?
__________________
Spécialiste des questions bêtes

L'urgent est fait, l’impossible est en cour, pour les miracles prévoir un délai

Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour
EIN-LESER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 13h21   #7
Membre éclairé
 
Avatar de Charvalos
 
Homme
Étudiant
Inscription : juin 2010
Messages : 143
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 19
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 143
Points : 363
Points : 363
Envoyer un message via MSN à Charvalos Envoyer un message via Skype™ à Charvalos
Justement, je ne peux naviguer que si je suis connecté.
Sinon, je suis toujours redirigé vers la page de connexion.

Ma fonction logout ressemble à ca :

Code :
1
2
3
4
5
6
7
8
9
 
<?php
    function logout()
    {
        $this->Auth->logout();
        $this->Session->delete();
        $this->redirect('/');
    }
?>
__________________
"Non, je ne dois rien à personne
Et je ne méprise personne".


Je ne réponds pas aux message techniques par MP !
Charvalos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 13h25   #8
Membre éclairé
 
Avatar de EIN-LESER
 
Homme Sebastian
Développeur Web
Inscription : mai 2008
Messages : 380
Détails du profil
Informations personnelles :
Nom : Homme Sebastian
Âge : 35
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2008
Messages : 380
Points : 318
Points : 318
Envoyer un message via MSN à EIN-LESER
pourrais tu me montrer ton code du cotroler également?
Il doit bien y avoir une raison lol.
__________________
Spécialiste des questions bêtes

L'urgent est fait, l’impossible est en cour, pour les miracles prévoir un délai

Si une reponse vous plait ou vous a aidé n'hesitez pas a voter pour
EIN-LESER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 13h31   #9
Membre éclairé
 
Avatar de Charvalos
 
Homme
Étudiant
Inscription : juin 2010
Messages : 143
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 19
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 143
Points : 363
Points : 363
Envoyer un message via MSN à Charvalos Envoyer un message via Skype™ à Charvalos
Je te mets tous mes controllers.

UserController
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
<?php
class UsersController extends AppController
{
    //Fonction qui permet de se loguer
    function login()
    {
        if($this->request->is('post'))
        {
            if($this->Auth->login())
                return $this->redirect('/admin');
        }
    }
 
    //Fonction qui permet de déloguer
    function logout()
    {
        $this->Auth->logout();
        $this->Session->delete();
        $this->redirect('/');
    }
}
AppController
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
class AppController extends Controller
{
    public $helpers = array('Form', 'Html', 'Session');
    public $components = array('Session', 'Auth');
 
    function beforeFilter()
    {
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'admin' => false);
        $this->Auth->authorize = array('Controller');
 
        if(!isset($this->params['prefix']))
        {
            $this->Auth->allow();
        }
    }
}
PagesController
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
<?php
class PagesController extends AppController
{    
    //Fonction qui permet de changer de layout si le paramètre admin est dans l'url
    function beforeFilter()
    {
        if(isset($this->params['prefix']) && $this->params['prefix'] == 'admin')
        {
            $this->layout = 'admin';
        }
    }
 
    /**
     * ------------------------ Fonctions d'utilisateur ------------------------
     **/
 
    //Permet d'afficher la page d'accueil
    function index(){}
 
    //Permet d'afficher les pages sous la forme /pages/show/xxxxx
    function voir($slug = null)
    {
        $page = $this->Page->find('first', array(
            'conditions' => array(
                'slug' => $slug,
                'online' => 1
        )));
 
        //Petit test qui permet de savoir si une page existe ou pas. Si c'est pas le cas, on lève une exception
        if(empty($page))
            throw new NotFoundException('La page que vous essayez d\'atteindre n\'est pas disponible');
 
        $d['page'] = $page;
        $this->set($d);
    }
 
    /**
     * ------------------------ Fonctions d'administration ------------------------
     **/
 
    //VA chercher toutes les pages contenues dans la BDD afin de pouvoir les afficher
    function admin_index()
    {
        $page = $this->Page->find('all');
        $d['page'] = $page;
 
        $this->set($d);
    }
 
    //Pour éditer une page
    function admin_edit($id)
    {
        if($this->request->is('put') || $this->request->is('post'))
        {
            if($this->Page->save($this->request->data))
            {
                $this->redirect(array('controller' => 'pages', 'action' => 'index'));
            }
        }
        elseif($id)
        {
            $this->Page->id = $id;
            $this->request->data = $this->Page->read();
        }
    }
 
    //Pour supprimer une page
    function admin_delete($id)
    {
        $this->Session->setFlash('La page a bien été supprimée', 'message_succes');
        $this->Page->delete($id);
        $this->redirect($this->referer());
    }
}
__________________
"Non, je ne dois rien à personne
Et je ne méprise personne".


Je ne réponds pas aux message techniques par MP !
Charvalos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h57.


 
 
 
 
Partenaires

Hébergement Web