2013-01-03 121 views
-2

我想在用戶登錄頁面時自動將cookie存儲在數據庫中。 cookie「someCookie」先前設置在不同的頁面上。在數據庫中存儲cookie

我的想法是將cookie存儲在一個變量中,然後通過表單發送它。

<?php 
$someCookie = $_COOKIE['somecookie']; 
echo $this->Form->create('Some object'); 
echo $this->Form->input('something', array('type' => 'hidden', 'value' => $someCookie)); 
echo $this->Form->end('Save this'); 
?> 

然後我會做一些按下提交按鈕的東西。然而,這感覺就像是一個非常冒險的方式去做這件事。

這樣做的正確方法是什麼?

+3

如果你在'$ someCookie' cookie的,你爲什麼不只是將其存儲在直接對數據庫? – jeroen

+0

你爲什麼不直接保存cookie? 'if(isset($ _ COOKIE ['somecookie'])){//查詢此處}'的效果' – RageD

+0

爲什麼要將cookie保存在數據庫中?這本身就讓人感到不舒服。 – GolezTrol

回答

1

爲什麼不把當前時間保存在會話中?然後在下一頁閱讀會話並進行比較? 這似乎很多少「哈克」

$this->Session->write('pageStart', time()); 

那麼接下來的頁面上:

$timeOnPage = $this->Session->read('pageStart', time()) - time(); 

然後你可以先走一步,節省$ timeOnPage變量,沒有意見的混亂。

一些閱讀:http://book.cakephp.org/2.0/en/core-libraries/components/sessions.html

+1

在會話中存儲時間將寫入服務器處理頁面的時間,它不會計算實際的頁面加載時間(onload事件)。 –

+0

作者:「我想在用戶登錄頁面時自動在我的數據庫中存儲cookie」。我認爲他想要的唯一信息是用戶在最後一頁上的時間。不是任一頁面的加載時間。如果放在腳本的頂部,它不會離實際時間太遠。 –