2013-07-01 48 views
3

我正在使用java腳本插件上傳多個圖片。以前我已經在插件中使用了服務器端腳本。在這個PHP文件中,我有$ _SESSION變量在會話中分配一個值。但是當我嘗試在我的控制器的方法中訪問該會話時。我已將我的JavaScript文件及其相應的php文件存儲在webroot中。有沒有辦法從webroot到控制器中獲取會話。

+0

手動說'$ green = $ this-> Session-> read('Person.eyeColor');'''''''''''''''''''''' – DevZer0

+0

我也試過這個。 –

+0

我想你可能不得不直接在這個PHP上...因爲你可能沒有直接訪問你的JavaScript文件中的CakePHP會話組件。 –

回答

1

在Webroot公司的PHP文件,那就是你有session_start();,嘗試將其更改爲以下:

session_name('CAKEPHP'); 
session_start(); 
-1

首先,您需要定義公共變量

public $components = array('Session'); 

後,您可以使用

$this->Session->read(); 
-1

爲了寫入會話變量首先你需要做的是包括

public $components = array('Session'); 

然後寫您的會話變量一樣:在您的控制器,如電子會話組件

$this->Session->write('variable name', 'your session value'); 

爲了得到這個session變量寫

$this->Session->read('variable name'); 

要刪除特定會話變量寫

$this->Session->delete('variable name'); 
1

SharkofMirkwood的回答爲我工作。

session_name('CAKEPHP'); 
session_start(); 
print_r($_SESSION); 

這之後,您可以用蛋糕的方法

$this->Session->read('session_name'); 
+0

你爲什麼要那樣做?......以上答案是正確的。 – mark

+0

@mark問題不在於如何訪問CakePHP中的會話 - 它是如何訪問_the_會話作爲webroot中的獨立php文件。還要注意,「以上」取決於你如何排序答案 - 有3種可能性,我只是改變了其中兩個的順序:P – AD7six

+0

好點。最初的問題並沒有完全指出蛋糕應用程序內部和外部的區別。但是,這個答案畢竟似乎是正確的。 – mark

-1

在你的控制器訪問會話變量,請允許會話組件,如果你想使用會話組件在整個應用程序,然後包括在應用程序控制器中。

完成此操作後,您可以使用以下方法訪問任何會話數據。

$sessionData = $this->Session->read(); 
debug($sessionData); 

如果要寫入會話,可以使用以下行。

$sessionWrite = $this->Session->write('Site.name', 'My Site Name'); 

的文檔,你可以使用其他的功能都可以在這裏找到。 http://book.cakephp.org/3.0/en/development/sessions.html