Bonsoir à tous le monde.

Mon système de connexion + redirection ne fonctionne pas tout à fait comme je le souhaiterais.

Quand je me connecte en tant que simple USER la redirection se fait vers l'accueil avec IMPOSSIBILITE d'accéder à la section ADMIN donc parfait.

En revanche quand je me log en ADMIN, la redirection ne se fait pas mais il est POSSIBLE d'accéder à la section ADMIN.

Si l'un de vous à une idée je suis preneur.

Voici mes codes :

CONF.PHP

<?php
class Conf{

    static $debug = 1;

    static $databases = array(

        'default' => array(
            'host' => 'localhost',
            'database' => 'tuto',
            'login' => 'root',
            'password' => ''
        )
    );
}
Router::prefix('cockpit','admin');
Router::connect('','posts/index');
Router::connect('cockpit','cockpit/posts/index');
Router::connect('blog/:slug-:id','posts/view/id:([0-9]+)/slug:([a-z0-9\-]+)');
Router::connect('blog/*','posts/*');
?>

LOGIN.PHP

<div class="page-header">
    <h1>Zone réservée aux membres V.I.P.</h1>
</div>
    <form action="<?php echo Router::url('users/login'); ?>" method="post">
        <?php echo $this->Form->input('login','Identifiant'); ?>
        <?php echo $this->Form->input('password','Mot de passe',array('type'=>'password')); ?>
    <div class="actions">
        <input type="submit" class="btn primary" value="Se connecter">
    </div>
    </form>

USERSCONTROLLER.PHP

//Login
    function login(){
        if($this->request->data){
            $data = $this->request->data;
            $data->password = sha1($data->password);
            $this->loadModel('User');
            $user = $this->User->findFirst(array(
                'conditions' => array('login' => $data->login,'password' => $data->password
            )));
            if(!empty($user)){
                $this->Session->write('User',$user);
            }
            $this->request->data->password = '';
        }
        if($this->Session->isLogged()){
            if($this->Session->user'role'] == 'admin'){
                $this->redirect('cockpit');
            }else{
                $this->redirect('');
            }
        }
    }

Il ne doit pas manquer grand chose mais la je ne vois pas ...

Si vous pouviez me venir en aide.

D'avance merci.

5 réponses


Désolé je ne consulte ta réponse que maintenant ...

Et bien je vais essayer ça et je te tiens au courant ...

Merci beaucoup d'avoir pris le temps de me répondre en tout cas .

Bonne journée.

Bonjour,

@JamesHemery : Comment peux tu savoir que c'est une fonction (methode) et non une variable (attribut) ?

Ton code a l'air d'être fait avec CakePHP, si c'est le cas, essaye cela : $this->Session->read('User.role');

Bonjour,

@Gyuki : Certes sans précision du tutoriel nous ne pouvons savoir si c'est celui avec ou sans cakephp mais vu le code fourni ça ressemble exactement au mvc classique de Grafikart donc la supposition de @JamesHemery est bonne. De plus, je pense que Jackisback aurait posté son probleme dans la section Cake Php si ça avait été le cas...

Cordialement

LoL, J'ai pas fait attention au titre du sujet :/

Après j'ai pas dit sa méchament, je comprenais pas comment il pouvait le deviner...

Il n'y a pas a dire, je suis pas fait pour bosser le matin XD.

Ouais ça m'a bien aidé JamesHemery je t'en remercie ...

En revanche j'ai d'autres fonctionnalités qui me causait du tort donc je suis passé premium et la du coup avec les sources, plus aucuns soucis ...

Merci encore à vous tous pour votre aide.