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 27/08/2011, 14h42   #1
Invité de passage
 
jordan imbert
développer amateur
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : jordan imbert
Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : développer amateur
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
Par défaut probleme password avec cakephp

Bonjour a tous, c'est la première fois que je post un message sur ce forum et j’espère trouver de l'aide. Je redeveloppe mon site en utilisant cakephp et j'ai pas mal avancé.
Mais lorsque je fais le formulaire pour se logger, et que je debug($this->data)
je n'est pas le champ password que je viens de rentrer.

Voila le code de ma vue:
Code :
1
2
3
4
5
6
7
 
echo $this->Session->flash('auth');
echo $this->Form->create('User', array('action' => 'admin_login'));
echo $this->Form->input("username", array("label"=>"Votre pseudo: "));
echo $this->Form->input("password", array("label"=>"Votre mot de pass: "));
echo $this->Form->button("envoyer", array("type"=>"submit", "id"=>"envoyer"));
echo $this->Form->end();
le debug m'affiche :
Code :
1
2
3
4
5
6
7
8
9
10
 
Array
(
    [User] => Array
        (
            [username] => test
            [password] => 
        )
 
)
Pourtant je ne vois aucun problème au niveau de mon formulaire.
Avez-vous une idée?
jojo150393 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 11h47   #2
Membre chevronné
 
Inscription : janvier 2006
Messages : 446
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 446
Points : 637
Points : 637
Bonjour,

On peut peut-être faire autrement, mais en attendant, ce comportement est normal.

C'est parce que cakephp gère l'identification "automatiquement". Si les conditions sont remplies, ça fonctionne même si la méthode UsersController->login ne contient aucun code.

Est-ce que cette page vous est utile ? (mais ça parle plus de l'inscription que de l'identification).
goomazio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 20h34   #3
Invité de passage
 
jordan imbert
développer amateur
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : jordan imbert
Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : développer amateur
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
merci pour la réponse. En fait le problème c'est surtout qu'il ne me logge pas alors je ne sais pas comment faire...

J'ai poster un msg sur le forum de cakephp mais pour l'instant pas de solution convaincante...
jojo150393 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 22h00   #4
Membre chevronné
 
Inscription : janvier 2006
Messages : 446
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 446
Points : 637
Points : 637
2 autres pistes :

- peut-être que le fait d'utiliser une action personnalisée (admin_login) pour l'identification interfère avec le processus automatique d'identification
et si c'est ça, il est possible de différencier l'administrateur d'un utilisateur normal en utilisant la même méthode d'identification

- si vous utilisez la fonctionnalité de listes de contrôle d'accès (Access Control List, ACL)), il faut bien suivre la procédure d'établissement des permissions :
- ajouter les tables nécessaires (acos, aros...)
- créer les "objets permissionables"
- assigner les permissions

(trop long pour être résumé ici, et le tutoriel officiel est assez bien fait)


Sinon, comment avez vous procédé exactement ?
goomazio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 12h38   #5
Invité de passage
 
jordan imbert
développer amateur
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : jordan imbert
Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : développer amateur
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
j'ai pas utilisé l'acl car il n'y que moi comme admin donc pas besoin de faire plusieurs utilisateurs avec des droits différents.
En faite, j'ai suivis le tuto de grafikart sur la console avec cake pour automatiser la création des class. Et a un moment il demandait le préfix alors j'ai mis admin comme grafikart le disait. Puis ensuite j'ai suivi son tuto sur la sécurisation de cake. Et j'ai fais pareil que lui seulement lui il avait pas le préfix admin et il ne sécurisé que certaine action.

Puis je me suis un peu aidé de la doc pour le formulaire et pour certaine précision .

Enfait, j'ai peux être une piste. Est-ce que le composant Auth crypte le password et va chercher un password déja crypté ou pas ? car moi j'ai ajouté un utilisateur de test en brut avec phpmyadmin. Donc le password n'est pas crypté.
Je vais essayé de rajouter un utilisateur pas le composant et on va voir si ca marche.
jojo150393 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 13h07   #6
Invité de passage
 
jordan imbert
développer amateur
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : jordan imbert
Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : développer amateur
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
mais je ne comprend rien même en le faisant à la main, le login ne marche pas !

Dans la vue j'ai mis
Code :
1
2
3
4
5
6
7
8
echo $form->input("pass");
function login(){
 
 $this->data['User']['password'] = $this->data['User']['pass'];
 unset($this->data['User']['pass']);
 $this->Auth->login($this->data);
 
}
et si je met laisse password dans la vue, ça ne change rien.
mais le truc incompréhensible, c'est que je suis logger car je peux accéder à la partie admin mais il me laisse le message d'erreur et je ne suis pas redirigé!

Vive le gateaux!!!!
jojo150393 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 15h02   #7
Invité de passage
 
jordan imbert
développer amateur
Inscription : août 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : jordan imbert
Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : développer amateur
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : août 2011
Messages : 5
Points : 0
Points : 0
c'est bon ça marche. Enfait j'ai tous refait mais aussi en ajoutant une fonction beforeSave dans le model et aussi en ajoutant un utilisateur à la main en faisant:

Code :
1
2
3
4
5
6
function add(){
 $data =array();
$data['User']["username"] = "test";
$data['User']["password"] = "test";
$this->User->save($data);
}
Ensuite pour régler le problème de redirection qui demandais un admin_login, j'ai créer une fonction admin_login avec un $this->render("login") pour utiliser la même vue et ça marche nichel.

Seul problème, le app_controller n'est pas détecté. Lorsque je met seulement le $componment = array("Auth");
dans le app_controller, ça ne marche pas. Il faut donc que je le mette à tous.
Même la fonction beforeFilter ne marche pas sauf de temps en temps ^^. Trés trés bizarre je sais...

Merci pour les réponses
jojo150393 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 14h23.


 
 
 
 
Partenaires

Hébergement Web