Cookie schreibt keinen Cookie

Klassen zur Datenverarbeitung in den Controllern (DRY)

Cookie schreibt keinen Cookie

Beitragvon Mathias am Sa 24. Jan 2009, 17:02

Hey Gents,

ich möchte gern in mein Admin-Backend die "Remember Me"-Funktion einbauen.
Das Problem, was ich habe, ist, dass komischerweise kein Cookie geschrieben wird.

app_controller
Code: Alles auswählen
    var $components = array('Auth', 'Cookie', 'Email', 'RequestHandler');
   
    function beforeFilter() {
        // Auth
        $this->Auth->loginAction    = array(Configure::read('Routing.admin') => true, 'controller' => 'users', 'action' => 'login');
        $this->Auth->autoRedirect   = false;
        $this->Auth->logoutRedirect = array(Configure::read('Routing.admin') => true, 'controller' => 'users', 'action' => 'login');
        $this->Auth->authError      = 'You are not authorized to access that location.';
        $this->Auth->loginError     = 'You are not logged in. Please make sure that the username and the password are correct.';
       
        //Cookie
        $this->Cookie->name = 'backyard_shed';
        $this->Cookie->time =  '4 weeks';
        $this->Cookie->path = '/admin/';
        $this->Cookie->domain = $_SERVER['SERVER_NAME'];
        $this->Cookie->key = '1234';
    }


user_controller
Code: Alles auswählen
    function admin_login() {
        $this->set('title', 'Please log in');
        if ($this->Auth->user()) {
            if (!empty($this->data)) {
                if ($this->data['User']['remember_me']) {
                    $cookie = array();
                    $cookie['username'] = $this->data['User']['username'];
                    $cookie['password'] = $this->data['User']['password'];
                    $this->Cookie->write('Auth.User', $cookie, true, '+4 weeks');
                }
                $this->redirect($this->Auth->redirect());
            }          
        }
        if (empty($this->data)) {
            $cookie = $this->Cookie->read('Auth.User');
            if (!is_null($cookie)) {
                if ($this->Auth->login($cookie)) {
                    $this->Session->del('Message.auth');
                    $this->redirect($this->Auth->redirect());
                }
            }
        }
    }


Lese ich mit $this->Cookie->read('Auth.User'); den Cookie gleich nach dem Schreiben, komme ich an die Daten. Suche ich aber im Firefox nach dem Cookie, ist er nicht da. Auch simples Dummy-Cookie anlegen funktioniert nicht.
Übersehe ich irgendeine Kleinigkeit? Hab ich irgendwas vergessen?
cheers
Benutzeravatar
Mathias
 
Beiträge: 184
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.2.5
OS: OS X 10.6.x

Re: Cookie schreibt keinen Cookie

Beitragvon euromark am Sa 24. Jan 2009, 20:40

müsste dann an einem der manual configs liegen:
Code: Alles auswählen
      $this->Cookie->name = 'backyard_shed';
      $this->Cookie->time =  '4 weeks';
      $this->Cookie->path = '/admin/';
      $this->Cookie->domain = $_SERVER['SERVER_NAME'];
      $this->Cookie->key = '1234';


denn nur mit
Code: Alles auswählen
      $this->Cookie->name = 'backyard_shed';
      $this->Cookie->time =  '4 weeks';

gehts bei mir - ohne probleme

mit der internen Cookie-Explorer ist das cookie einsehbar, mit der WebdevBar sogar editierbar
- gut das Editieren ist nun nich soo sinnvoll^^


--- korrigierung ---
es funzt mit allen deinen einstellungen, statt /admin/ hab ich aber den controller /online/ genommen.
jedenfalls klappts bei mir damit
muss was anderes sein
euromark
 
Beiträge: 397
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 1.2.4
OS: Windows

Re: Cookie schreibt keinen Cookie

Beitragvon Mathias am Sa 24. Jan 2009, 23:09

Danke für den Hinweis. Ich hab dann noch mal die Cookie-Einstellungen durchgeschaut. Es funktioniert nur, wenn ich $this->Cookie->domain = $_SERVER['SERVER_NAME']; rausnehme. Die Domain wird mir aber später ordentlich beim Cookie angucken angezeigt.
Ich weiß nicht, ob es am localhost liegt oder ob ich irgendwo anders noch ne Einstellung machen muss.
Ich werds ja sehen, wenn ich das mal live packe.

Dennoch vielen Dank.
cheers
Benutzeravatar
Mathias
 
Beiträge: 184
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.2.5
OS: OS X 10.6.x


Zurück zu Components

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron