|
Hi,
Has someone ever seen only one controller does not access the cake session ? The session works fine for all controllers except for one specific controller. I tried debug the problem but I didn't find the reason. The controller code: class ExecutivosController extends AppController { var $name = 'Executivos'; var $uses = array('Executivo', 'FormacaoAcademica', 'FormacaoComplementar', 'Executivo', 'Empresa', 'Unidade', 'Cargo', 'ExecutivoCargo', 'AtuacaoProfissional', 'ExecutivoIdioma', 'Decisao', 'Mobilidade', 'PotencialProntidao', 'Arquivo', 'Usuario'); var $components = array('RequestHandler', 'Email'); function index() { // Get login information $Login = $this->Session->read('Login'); debug($_SESSION); debug($Login); and the others controllers are similar: <?php class CargosController extends AppController { var $name = 'Cargos'; var $uses = array('Cargo', 'Empresa', 'Unidade', 'Executivo', 'RespostaColaboradore'); var $components = array('RequestHandler', 'Email'); function index() { // Le informações de login $Login = $this->Session->read('Login'); debug($_SESSION); debug($Login); When I access the Cargos controller all session information are printed by debug funcion as expected, when I try access the first one the Session and $_SESSION is empty. If I reload the second one again the session values are still there (it means the session isn't erased). The app_controller.php file: class AppController extends Controller { var $helpers = array('Html', 'Javascript', 'Session', 'Ajax', 'Time', 'Form'); function beforeFilter() { //debug($this); if (($this->name != "Usuarios") or ($this->action != 'login')){ if($this->Session->read('Login')) { } else { $this->Session->setFlash(__('Efetue o login para acessar o sistema', true)); $this->redirect(array('controller' => 'usuarios', 'action' => 'login')); } } } Has someone have any ideas why the Executivos controller can't access the session ? Thanks -- Best Regards, Felipe Roman Phone 55 51 8454 8110 LinkedIn http://au.linkedin.com/in/feliperoman -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [hidden email] For more options, visit this group at http://groups.google.com/group/cake-php |
|
why don't your controllers have:
public $components = array('Session'); ? without it you cannot use the session component Am Montag, 19. März 2012 01:37:02 UTC+1 schrieb Felipe Roman: Hi, Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [hidden email] For more options, visit this group at http://groups.google.com/group/cake-php |
|
After long time trying figure out I found the problem and the
solution. I changed the app/config/core.php file setting: Session.checkAgent to false so the Ajax requests do not change the UserAgent allowing the controller to get the session. "Session.checkAgent Setting this to TRUE means Cake will store the user agent header of a request when a new session is created. On subsequent request, the user agent header sent is compared with the value stored in the session. If it does not match, the current session will be destroyed and a new session gets created. This rarely causes problem unless you have embedded Flash or Java objects making separate requests to the application. You must take note to send the user agent string of the browser in that case. If you are using something like Aurigma’s Image Uploader where the user agent is not configurable, you have to set this to FALSE instead." Source http://derickng.com/posts/36-cakephp-losing-or-missing-session Thanks On Mar 19, 7:50 am, euromark <[hidden email]> wrote: > why don't your controllers have: > > public $components = array('Session'); > > ? > > without it you cannot use the session component > > Am Montag, 19. März 2012 01:37:02 UTC+1 schrieb Felipe Roman: > > > > > > > > > > > Hi, > > > Has someone ever seen only one controller does not access the cake session > > ? > > > The session works fine for all controllers except for one specific > > controller. I tried debug the problem but I didn't find the reason. > > > The controller code: > > > class ExecutivosController extends AppController { > > > var $name = 'Executivos'; > > var $uses = array('Executivo', 'FormacaoAcademica', > > 'FormacaoComplementar', 'Executivo', 'Empresa', 'Unidade', 'Cargo', > > 'ExecutivoCargo', 'AtuacaoProfissional', 'ExecutivoIdioma', 'Decisao', > > 'Mobilidade', 'PotencialProntidao', 'Arquivo', 'Usuario'); > > var $components = array('RequestHandler', 'Email'); > > > function index() { > > > // Get login information > > $Login = $this->Session->read('Login'); > > > debug($_SESSION); > > debug($Login); > > > and the others controllers are similar: > > > <?php > > class CargosController extends AppController { > > > var $name = 'Cargos'; > > var $uses = array('Cargo', 'Empresa', 'Unidade', 'Executivo', > > 'RespostaColaboradore'); > > var $components = array('RequestHandler', 'Email'); > > > function index() { > > // Le informações de login > > $Login = $this->Session->read('Login'); > > > debug($_SESSION); > > debug($Login); > > > When I access the Cargos controller all session information are > > printed by debug funcion as expected, when I try access the first one > > the Session and $_SESSION is empty. If I reload the second one again > > the session values are still there (it means the session isn't > > erased). > > > The app_controller.php file: > > > class AppController extends Controller { > > var $helpers = array('Html', 'Javascript', 'Session', 'Ajax', > > 'Time', 'Form'); > > > function beforeFilter() { > > //debug($this); > > if (($this->name != "Usuarios") or ($this->action != 'login')){ > > > if($this->Session->read('Login')) { > > } else { > > $this->Session->setFlash(__('Efetue o login para > > acessar o sistema', true)); > > $this->redirect(array('controller' => 'usuarios', > > 'action' => 'login')); > > } > > } > > } > > > Has someone have any ideas why the Executivos controller can't access > > the session ? > > > Thanks > > > -- > > Best Regards, > > Felipe Roman > > Phone 55 51 8454 8110 > > LinkedInhttp://au.linkedin.com/in/feliperoman -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [hidden email] For more options, visit this group at http://groups.google.com/group/cake-php |
|
In reply to this post by Felipe Roman
On a side note, you are including tons of models.
You don't need to include every model if specific models have associated models you can utilize. You should also load models on a per action basis using loadModel(). On Sunday, March 18, 2012 5:37:02 PM UTC-7, Felipe Roman wrote: Hi,-- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [hidden email] For more options, visit this group at http://groups.google.com/group/cake-php |
|
i also came across same problem.... i arranged the code such that after initialising session.. read the variables in session....and not put other codesbetween this.. if u do it.. u can get the result..
On Fri, Mar 30, 2012 at 12:19 AM, Miles J <[hidden email]> wrote: On a side note, you are including tons of models. Litto Chacko Axtec Softwares -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [hidden email] For more options, visit this group at http://groups.google.com/group/cake-php |
| Powered by Nabble | Edit this page |
