在CakePHP中,當您嘗試訪問保護操作時,會自動將其帶到應用程序中的登錄表單。但HTTP_REFERER是空的?HTTP_REFERER在通過身份驗證組件重定向時爲空
$referer = env('HTTP_REFERER');
echo $referer;
所以通常當我訪問登錄頁面,我會看到顯示此代碼的前一頁網址,但如果我訪問登錄頁面通過驗證組件上當受騙後,有那麼這將是空的?
爲什麼它是空的?正如我剛纔提到的那樣?
我該如何得到它承認重定向作爲一個referal? 注意:在這種情況下使用Auth.Redirect會話值不是一個選項,因爲它在人員離開站點後會保留,所以例如,如果他們返回到登錄頁面,它將顯示原始請求的操作,而不是推薦頁面!因此,將作爲推薦行爲,即使它不是因爲它使用現有會話
編輯:
作爲替代例如:
if(isset($_SERVER['HTTP_REFERER'])) {
echo $_SERVER['HTTP_REFERER'];
}
else
{
echo 'their was no referer';
}
當用戶進入到登錄的形式,它會說他們不是引用者,但顯然不是真的! ????
好吧,所有人都說。如果沒有引用者被設置,我怎麼知道用戶已被重定向?我不能僅僅檢查Auth.Redirect會話的存在,因爲如果用戶直接訪問登錄頁面,也可能存在這個會話....那麼,我該如何區分?謝謝 – Cameron
HTTP很棘手,不是嗎。 :)答案是,你不可能很容易地隱含地做這些事情。如果你需要跟蹤這些信息,明確地將它們嵌入URL中,就像'?redirect = true'參數或其他東西。你可以重寫'AppController :: redirect'來注入該參數。總體而言,您可能希望擁抱更無狀態的設計,而不是與HTTP的工作方式作鬥爭,並接受某些事情不能/不應該完成。至少這是你最近看到的問題所想到的。 :) – deceze
我很樂意使用查詢字符串而不是會話來處理這些事情,但由於某種原因,CakePHP只是吹響了並且一直抱怨着重定向循環:/更不用說我最終只會遇到同樣的問題如果Auth.redirect沒有被歸類爲引用者,我該如何傳遞重定向的查詢:P相同的問題。 – Cameron