2012-04-06 9 views
2

I enthalten die Komponente ‚Session‘ und der Helfer in meiner AppController.php Nun, wenn ich $this->Session->write('App.testString', 'test); die Session verwenden wird nicht erstellt, oder zumindest ich nicht‘ t bekomme die Zeichenfolge, wenn ich echo $this->Session->read('App.testString'); mache.

Muss ich irgendwelche Einstellungen für Sessions ändern?


Innerhalb einer Controller-Funktion kann ich schreiben und eine Sitzung lesen, aber wenn ich die Sitzung in einer anderen Funktion lesen möchte (von demselben Controller) bekomme ich keinen Wert zurück.

+1

müssen Sie uns Ihre core.php-Einstellungen mitteilen (wie ist Ihre Sitzung konfiguriert?). – mark

+0

Ah Entschuldigung. Ich habe es herausgefunden, und wie Sie vorgeschlagen haben, war die core.php der Grund, warum es nicht funktioniert hat. –

Antwort

6

Ich fand die Lösung: Standardmäßig verwendet CakePHP den Ordner, der in php.ini festgelegt ist. Auf diesen Ordner konnte in meiner Hosting-Umgebung nicht zugegriffen werden (und ich durfte die php.ini nicht ändern).

In dieser Situation müssen Sie in der core.php ändern, wo Sitzungsdateien gespeichert sind. Das ist, was ich hatte vor:

Configure::write('Session', array(
    'defaults' => 'php' 
)); 

ich es auf diese eine Änderung:

Configure::write('Session', array(
    'defaults' => 'cake' 
)); 

diese Weise einen Kuchen zu seinem eigenen tmp-Ordner verwendet die Session-Dateien zu speichern. Stellen Sie außerdem sicher, dass der Ordner tmp und seine Unterordner beschreibbar sind.

+0

Hallo. Warum hat es nicht für mich funktioniert? :( – Charmie

Verwandte Themen