我需要確保在進入產品下載頁面之前,一個人已經登記並填寫了登記表。現在我通過ajax提交表單,如果返回的JSON =成功,我會相應地重定向到相應的下載頁面。我希望保護下載頁面免於直接訪問,以確保我們首先捕獲該潛在客戶。我知道PHP會話和cookie可以被操縱,但它適合我們的需求,我意識到了後果等,只需要做到這一點。使用PHP Sessions/Cookies保護下載路徑?
所以頁面「http://www.example/register.php」我想設置和哈希基於當前時間的餅乾上:
<php
$time = ('Y-m-d H:i:s');
//set a new cookie with this value and hash it
?>
然後在http://www.example.com/download.php檢查的cookie,如果它被設置和最後一個小時顯示內設置下載內容,如果沒有設置或已過期,重定向回寄存器頁
<php
if !$cookie or expred {
location('http://www.example.com/register.php');
die();
} else {
//download content
}
?>
我知道這個例子非常rudementary,但我可以利用一些幫助得到正確的道路上。我讚賞它!
謝謝你的幫助!我根據需要現在開始工作。我將session_start()和$ _SESSION ['time'= time()移到一個單獨的文件中,然後在我的表單提交I $ .post的成功處理程序中啓動會話,所以它唯一有效的AFTER成功表格提交。最後一個問題是,有多個Ajax提交會開始會話,我如何清除所有會話,然後開始一個新的會話? –
@DirtyBirdDesign'session_start()'有點欺騙,它會啓動會話或抓取現有會話(如果該會話存在的話)。我認爲默認情況下,他們會在閒置30分鐘後過期。所以每個頁面實際上使用相同的會話(針對該用戶)。如果你想強制一個新的會話,你可以使用'session_destroy()'(首先使用session_start),但這真的是一個註銷頁面。希望這有助於! –