簡體   English   中英

除非我再次刷新頁面,否則 PHP 看不到 cookie

[英]PHP doesn't see a cookie unless I refresh the page again

我知道這里還有其他類似的問題,但我已經閱讀了答案,但我仍然沒有找到解決問題的方法。

所有這些腳本都在同一頁面search-results上。

它在數據表中顯示結果,並讓用戶 select 記錄保存到列表中,然后可以打印。 所選記錄的 ID 存儲在records cookie 中。 我可以看到這有效。

頁面底部有一個鏈接可以觸發這個 JS function:

function resultsPage(){
    window.location = "/search-results/?printqueue=true";
}

如您所見,這是同一個頁面,但參數不同。 這告訴頁面顯示他們保存的結果。

在初始加載時使用?printqueue=true PHP 無法讀取 cookie,即使頁面已刷新。 在 PHP 獲取 cookie 之前,我必須再次刷新(或單擊鏈接)。 為什么?

我得到這樣的cookie數據:

if( $_GET['printqueue'] == 'true' && $_COOKIE['records'] !== 'undefined' ) {
    $posts_to_show = explode(',',$_COOKIE['records']);
}

如果這只是因為操作順序,那很酷,那就無所謂了。 但是任何干凈的方法來“雙重刷新”頁面而不添加額外的參數並再次刷新(如果存在)? 我真的很討厭這樣做...

我相信它是因為 $_COOKIE['records'] 尚未設置..

嘗試:

if( $_GET['printqueue'] == 'true' &&  isset($_COOKIE['records']) ) {
    // your code
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM