le session flash et l’authentification ne marche plus en production

Par sekouzed, il y a 11 ans


bonjour,
J'ai développé une application avec cakephp 2.x. Tout marche bien en local mais un fois envoyé sur le serveur dédié, en ligne (pour la production), le session flash et l’authentification ne marche plus. J'arrive plus à me loguer.
merci d'avance !

9 réponses

sekouzed, il y a 11 ans

ça marche à present;
j'ai aussi mit les droits sur le app/tmp/ a 777
merci à toi inspira!!

Inspirat, il y a 11 ans

Visiblement les sessions ne sont pas activé sur ton serveur, vérifie dans ton php.ini ;)

sekouzed, il y a 11 ans

tout d'abord; merci de m'avoir repondu
mais j'ai un hebergement mitualisé(rectification), et j'ai pas acces au php.ini
en plus j'ai deja un site sous wordpress qui marche bien dans un sous docier

Inspirat, il y a 11 ans

D'accord, il y a aucun message d'erreur ?
Met une copie neuve de CakePHP sur cet hébergement, il te dira ce qui ne va pas sur la première page normalement ;)

sekouzed, il y a 11 ans

voila mon code d'autentification:


public function login() {
if ($this->request->is('post')) {
debug($this->request->data);
if ($this->Auth->login()) {
//die('log');
debug($this->Session->read());
return $this->redirect($this->Auth->redirect());
} else {
//die('no log');
$this->Session->setFlash(__("Nom d'user ou mot de passe invalide, réessayer"));
}
}
}


le : if ($this->Auth->login()) return toujour false et le $this->Session->setFlash ne fonctionne pas.
sekouzed, il y a 11 ans

le code suivant ne marche pas:
$this->Session->write('test','testval');
debug($this->Session->read());


par contre avec du code php suivant, marche bien :
session_start();
$_SESSION['coco']='cocoval';
echo $_SESSION['coco'];
debug($_SESSION);


donc je me dis que le problem vien de la configurationde la session dans app/config/core.php
Configure::write('Session', array(
'defaults' => 'php'
));
le soussi est q g ne sais pas comment le configuré pour l'adopté a mon serveur

Inspirat, il y a 11 ans

Dans ton controller AppController, est-ce que tu as pensé à ajouter les composants nécessaires ?

// app/Controller/AppController.php public $components = array( 'Session', 'Cookie', 'Auth' );

PS: n'hésite pas à utiliser les blocs de code pour une meilleure lisibilité de tes bouts de code ;)

sekouzed, il y a 11 ans

oui tout a fait

//app/Controller/AppController.php <?php App::uses('Controller', 'Controller'); class AppController extends Controller { public $components = array('Session','Cookie','Auth'); }

et voila pour user

//app/Controller/UserController.php <?php class UsersController extends AppController { public function beforeFilter() { $this->Auth->allow('index', 'view','add', 'logout'); } public function login() { if ($this->request->is('post')) { debug($this->request->data); if ($this->Auth->login()) { //die('log'); debug($this->Session->read()); return $this->redirect($this->Auth->redirect()); } else { //die('no log'); $this->Session->setFlash(__("Nom d'user ou mot de passe invalide, réessayer")); } } } public function logout() { return $this->redirect($this->Auth->logout()); } public function index() { //$this->Session->write('test','testval'); //debug($this->Session->read()); session_start(); $_SESSION['coco']='cocoval'; echo $_SESSION['coco']; debug($_SESSION); session_destroy(); die(); //$this->User->recursive = 0; //$this->set('users', $this->paginate()); } public function view($id = null) { $this->User->id = $id; if (!$this->User->exists()) { throw new NotFoundException(__('User invalide')); } $this->set('user', $this->User->read(null, $id)); } public function add() { if ($this->request->is('post')) { $this->User->create(); if ($this->User->save($this->request->data)) { $this->Session->setFlash(__('L\'user a été sauvegardé')); return $this->redirect(array('action' => 'index')); } else { $this->Session->setFlash(__('L\'user n\'a pas été sauvegardé. Merci de réessayer.')); } } } }
Inspirat, il y a 11 ans

C'est peut-être la configuration de ton hébergement qui pose problème, dans le fichier "core.php" modifie la chose suivante:

// app/Config/core.php - Ligne 218 à 220 Configure::write('Session', array( //'defaults' => 'php' 'defaults' => 'cake' // Utilise le système de stockage de CakePHP ));