回答
cron作業將無法訪問cookie,因爲根據定義,它不會從web瀏覽器請求中調用。只有Web瀏覽器存儲一個包含會話ID的cookie。沒有網頁瀏覽器,沒有cookie,沒有會話。
說了這麼多,如果你做知道會話ID不知何故,你應該能夠通過餵食ID手動啓動會話爲session_id()
使用session_start()
之前。
只有當會話仍然存在時。運行一個cron作業,比如說,幾小時或幾天後,可能會嘗試加載不再存在的會話。 – 2009-11-09 07:08:19
非常感謝你的答案。我喜歡。 – 2017-12-18 16:12:39
有一個名爲pseudo cron的項目,我想可以訪問會話和/或cookie。但這對我來說沒有意義。
不是。通過根據實際請求運行,它可以從請求該頁面的人員那個時刻「看到」cookie,而不是來自您正在運行cron-job的人員的cookie。 這裏也適用同樣的限制@deceze cite。您需要事先知道* session_id *並使用它開始會話。除非你不能使用cron,否則他們使僞cron不是一個好選擇。 – 2009-11-09 07:46:30
是的,你是對的。但是我認爲這是相關的,因爲這個問題沒有提到哪個特定的會話可以訪問。但是,如果你想訪問一個已知會話ID的會話,來自deceze的答案將是準確的。 – 2009-11-09 08:27:32
另一個答案是,可以使用命令行Web客戶端的會話cookie文件。 例如:
C=~/tmp/x
WGET="wget --keep-session-cookies --load-cookies=$C --save-cookies=$C"
1.獲得登錄頁面
$WGET -O index.html "http://mail.yahoo.com"
2.撈出任何隱藏值
HIDDENVARS=`cat index.html | tr '\r\n\t' ' ' | tr -s ' ' | sed "s|> *<|>~<|g" | tr '~' '\n' | \
grep -i "<input .*hidden" | sed "s|.*name=\"\([^\"]*\)\".*value=\"\([^\"]*\)\".*$|\1=\2|g" | tr '\n' '&'`
3手動添加非隱藏瓦爾
FORMVARS = 「.persistent = y & login = USERNAME & passwd = SE CRET 「
4.交形狀數據發送到目標
$ WGET -O的login.html --post數據= 」$ {HIDDENVARS} & $ {FORMVARS}「」 https://開頭登錄。 yahoo.com/config/login?」
5.利潤;)
基於時間的,服務器端的 「cookie」 到cron作業中運行:
使用file()來讀取服務器端的 「曲奇」 - 一個文本文件。
使用fopen,fwrite,fclose寫入服務器端的「cookie」。
使用內爆,如果在你的「餅乾」中存儲多於datavalue:
主要代碼:
<?php
$username = 'whatever';
$usercookie = 'http://yourdomainname.com/cookiebank/'.$username.'cookie.txt';
$oldtime = file($usercookie);
if(is_array($oldtime)) {
$cookievalue = implode(" ",$oldtime);
}
else {
$cookievalue = $oldtime;
}
// $cookievalue can then be used as you wish...
$newtime = date("M j G:i:s");
$newtime = strtotime($newtime)*1000; // current time in msec
$myfile = fopen($usercookie, "w") or die("Unable to open file!");
fwrite($myfile, $newtime);
fclose($myfile);
echo 'done';
?>
直接從荒地魯賓遜的心靈的一種方法 - 不是很優雅,但它的工作原理如果您想將類似cookie的行爲應用於cron作業。
- 1. PHP會話變量不可訪問
- 2. php cookies和會話變量表格
- 3. jQuery cookies可能會像會話變量一樣過期嗎?
- 4. JSTL:訪問會話變量
- 5. ASP.NET MVC3會話變量不可訪問
- 6. 訪問會話變量8
- 7. 訪問會話變量
- 8. 如何訪問Docker設置環境變量從Cron作業
- 9. 隨時隨地設置cron作業並訪問環境變量
- 10. 可以從@Page訪問會話變量,但不能從基礎類訪問會話變量
- 11. 使用cron作業「訪問頁面」
- 12. 當以cron作業運行時,訪問PHP包含上述webroot
- 13. 我可以在我的PHP cron作業中使用Laravel嗎?
- 14. cron作業PHP
- 15. 編寫一個可以訪問用戶數據的Cron作業
- 16. 無法在cookie上訪問會話變量減少PHP會話
- 17. php會話和cookies
- 18. PHP - 會話變量問題
- 19. 會話變量問題php
- 20. nginx.conf可以訪問環境變量嗎?
- 21. 用戶可以訪問$ _SESSION變量嗎?
- 22. Coffeescript可以訪問SASS變量嗎?
- 23. 笨捲曲cron作業和會話
- 24. 黑客可以設置PHP會話變量嗎?
- 25. 可以使用jQuery會話變量嗎?調用一個php
- 26. cron作業問題
- 27. 會話cookies = cookies?
- 28. 今天會開始Cron作業嗎?
- 29. 從cron作業訪問Google API
- 30. DynamicMethod可以訪問變量以外的變量嗎?
你應該真的指定了這種訪問需要的用例。 – 2009-11-09 07:35:25