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 !
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
));
ça marche à present;
j'ai aussi mit les droits sur le app/tmp/ a 777
merci à toi inspira!!
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
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 ;)
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.
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
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 ;)
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.'));
}
}
}
}