Bonjour bonjour !
Je viens faire appel à votre savoir, après m'être tiré les cheveux pendant plusieurs heures sur google (en anglais, s'il vous plait) et quelques recherches sur les forums de Grafikart.
J'expose :
J'ai terminé de coder une première version de mon site, dernières verifications, tout fonctionne correctement en local, etc.
Une fois en ligne, je test de nouveau et là ! Oh surprise ! Une partie du site ne fonctionne pas...
Une fois connecté, j'accède très bien au site, mais dans la partie "Offers", la navigation du site est celle qui apparait quand non connecté, et les infos ne s'affichent pas (le cookie n'a l'air de subir aucune modification, et à bien l'air toujours présent).
Avant ça, j'avais un problème avec la ligne qui suit, qui m'affichait une page blanche :
$this->Auth->allowedActions = array('');
Il m'a suffit de supprimer le "s" de Action et ça "fonctionnait".
En testant avec :
debug($this->Auth);
je n'arrive pas à voir quelle information pourrait m'être utile pour avoir une piste et comprendre ce bug.
Pour info : j'ai déjà supprimé mon cache comme souvent indiqué, ... pas plus d'avancée... Mes fichiers sont tous en utf-8...
Je me permet de vous copier des parties de mon code, ce qui pourrait peut-être vous aider à comprendre et me donner des pistes, parce que là je sèche :-)
AppController.php :
class AppController extends Controller {
public $helpers = array('Text', 'Form', 'Html', 'Session');
public $components = array('Session', 'Cookie',
'Auth' => array(
'authenticate' => array(
'Form' => array(
'scope' => array('User.active' => 1)
)
)
)
);
function beforeFilter() {
$this->Auth->allow();
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->userModel = 'User';
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'home');
}
function beforeRender() {
$this->set('userFirstName', $this->Auth->user('firstname'));
$this->set('userUsername', $this->Auth->user('username'));
}
}
OffersController.php :
class OffersController extends AppController {
function beforeFilter(){
parent::beforeFilter();
$this->Auth->allowedAction = array('');
}
...]
OffersController.php (suite, fonction my()) :
function my() {
$myUserId = $this->Auth->user('id');
$conditions = array('user_id'=> $myUserId);
$d = $this->set('offers', $this->Offer->find('all', array(
'conditions' => $conditions,
'fields' => array(
'id',
'request_id',
'character_id',
'price',
'status'
),
'order' => array(
'id' => 'DESC'
)
)));
$this->loadModel('Character');
$d'characters'] = $this->Character->find('all', array(
'conditions' => array('Character.user_id'=>$myUserId),
'fields' => array(
'id',
'name',
'realm',
'region',
'user_id'
)
));
$this->set($d);
$this->loadModel('Request');
$d'requests'] = $this->Request->find('all');
$this->set($d);
$d'myUserId'] = $this->Auth->user('id');
$this->set($d);
}
Pour moi, ce dysfonctionnement me parait complément absurde :-s
Edit 22 mai 2012 à 11h44 :
Je tiens à préciser que, dans un comportement normal, si l'accès n'est pas autorisé à une page, on est redirigé sur la page de connexion. Ce qui n'est pas le cas ici...
Edit 22 mai 2012 à 13h50 :
Si je place, dans mon beforeRender de AppController.php :
debug($this->viewVars);
Sur les pages qui s'affiche correctement, identifiant est bien égal à mon identifiant une fois connecté.
Sur ma page qui pose problème, il est égal à null... (en local, pas de problème, la valeur vaut bien mon identifiant).
Edit 22 mai 2012 à 17h06 :
J'ai encore cherché, et je n'ai toujours pas trouvé de solution.
Je pense avoir identifié le problème, mais ne sais pas comment le résoudre :
<?php debug($this->Auth->user()); ?>
Est null sur la page qui pose problème...
Une idée ?
Edit 22 mai à 17h50 :
Pour vous faire une idée plus précise, vous pouvez vous rendre et vous inscrire sur http://crafffted.pjbdes.fr
Edit 22 mai 11:07 :
J'ai tenté de lancé la session manuellement, aucun changement remarqué.
J'ai aussi modifié core.php en indiquant différents types de session : aucun changement non plus...
Help??!