2013-02-16 45 views
0

比方說,我有4個用戶從4個不同的機器登錄。該網站是關於拍賣。每個拍賣的日期保持不變。我可以做這樣的事情:

$_SERVER['auctions'][0]['name'] = 'Auction 1'; 

那時若有4個用戶登錄,並有這段代碼:

print $_SERVER['auctions'][0]['name']; 

所有4會看到同樣的結果?換句話說,這是一種全局內存,我可以用它來緩存不經常更改的東西嗎?或者有更好的方法來做到這一點?

+0

爲什麼不將這些數據存儲在數據庫中而不是使用超全球變量? – hohner 2013-02-16 15:15:29

+0

不,不是;它也不是永久性的......即使是同一個用戶,它也會被所有的後續請求丟失....如果你想要全局內存,用戶數據可以存儲在APC – 2013-02-16 15:16:34

+0

另外,你的意思是$ _SESSION而不是$ _SERVER? – hohner 2013-02-16 15:16:45

回答

1

PHP使用$ _SERVER變量返回有關您的基於Web服務器和服務器的信息的信息,它不是存儲數據的地方。每次腳本運行時都會生成$ _SERVER的內容,並且在腳本的另一個實例中不會存儲任何內容。

您可以使用類似memcached的東西來存儲公共數據。 memcached用作共享內存/緩存的一種形式,易於安裝和使用。你也可以構建一個數組並序列化到一個文件並重新加載它,如json_encode => file_put_contents來保存,file_get_contents => json_decode來檢索它。避免會話,因爲它們是每個用戶,並不適合您在多個用戶之間共享的要求。

0

我認爲你應該將你的拍賣存儲在數據庫中。

在會話中存儲數據只是多個用戶的一個選項,如果他們在Cookie中具有相同的會話標識符。但是這可能會導致一些嚴重的安全問題。

$_SERVER數組似乎在您每次重新加載頁面時都會完全刷新。

相關問題