2010-08-13 22 views
2

我甚至不知道如何描述我想要做的事情,因爲我不知道一大堆關於餅乾的事情,但是在這裏。收集餅乾

是否可以使用PHP從瀏覽器緩存中收集cookie(或cookie文件),將其保存到數據庫中,然後清除緩存並將其保存回原來的位置?

執行此操作會涉及什麼?從瀏覽器緩存中讀取?我是否需要給它一個保存cookie的路徑,還是可以通過直接與瀏覽器通信來自動獲取? PHP可以處理嗎?

+0

'我不知道一大堆有關cookies'。沒關係。但是你碰巧知道你想要實現什麼樣的實際任務嗎?爲什麼你需要所有這些cookie混亂?如果是這樣,你最好告訴你的*目標*,而不是*你選擇的方式。 – 2010-08-13 08:39:34

+0

Cookie不會存儲在瀏覽器的「緩存」中 - 這是用於臨時存儲文檔,腳本,css,圖像等以便快速訪問的術語。 Cookie通常存儲在cookie文件或數據庫中,與緩存完全分開。 – JAL 2010-08-17 12:03:39

回答

2

獲取Cookie數據:

<?php 
echo 'Hello ' . htmlspecialchars($_COOKIE["name"]) . '!'; 
?> 

假設「名字」曲奇已設置較早 上面的例子將輸出類似於:

Hello Hannes! 

你可以遍歷的所有Cookie陣列與:

foreach($_COOKIES as $name => $cookie){ 
    echo "Cookie: $name has a delicious center consisting of: "; 
    print_r($cookie); 
} 

http://www.php.net/manual/en/reserved.variables.cookies.php

設置cookies:

http://www.php.net/manual/en/function.setcookie.php

4

在PHP中,你可以從$_COOKIE陣列讀取用戶系統中所有Cookie(您有權閱讀)。

您可以通過使用setcookie()並將其設置爲空字符串來清除這些cookie,儘管您通常需要知道cookie先前設置的確切主機名和路徑,然後再次給予相同的cookie能夠正確刪除它們。

然後,您可以再次將cookie設置爲之前從$ _COOKIE數組獲得的值。

當然不是所有人都在同一頁面。

2

PHP與客戶端的計算機,尤其是瀏覽器緩存無關。
PHP只能得到cookie,它由哪個瀏覽器自由發送,哪些是由同一個服務器設置的。

當然,服務器可以發送一個空的或過期的餅乾等於刪除或相同的Cookie與另一個值