2012-08-07 98 views
2

好吧,這是絕望,我試過每一個修復,我可以找到,但沒有運氣。 我在wordpress中使用會話變量,它在除Firefox以外的每個瀏覽器中都能正常工作。我清除了緩存,cookie,以安全模式啓動等,但沒有喜悅。 Cookies已啓用,我也在不同的電腦上嘗試過。會話變量不工作Firefox和Wordpress

我開始會話我的主題功能,文件內容如下:

function myStartSession() { 
if(!session_id()) { 
    session_start(); 
} 
} 
add_action('init', 'myStartSession', 1); 

然後在我的個人頁面模板創建會話變量如下: $ _SESSION [「HQ」] = 1;

我可以確認的SessionID保持在每個瀏覽器不變,並工作正常包括Firefox,但在FF會話變量不正確地從一個頁面傳遞到另一個,結果是不可預知的。

任何解決方案/建議都非常受歡迎。

回答

3

不是一個全新的問題,但是因爲我正在尋找一個解決方案,並且到了這裏,我會回答它可能幫助其他程序員。

我不得不與我公司開發的WordPress主題類似的問題,我發現在StackExchange在這篇文章的解決方案:https://wordpress.stackexchange.com/questions/40271/2-different-post-ids-for-single-page-load-only-in-firefox

由於Firefox的預取,接下來的文章/頁面加載在後臺和會話受到影響通過這種行爲。

至少有兩種可能的解決方案來解決這個問題:

  1. 刪除插入在<head>頁用下面的函數調用下頁/後的操作:

    remove_action('wp_head', 'adjacent_posts_rel_link_wp_head'); 
    

    它可以被添加到你的主題的functions.php文件中。

  2. 檢查請求頭處理(或者忽略)預取。所有預取請求都會通過特殊標題發送到服務器,如下所示:

    X-moz: prefetch 
    

    您可以查找此標頭並以不同的方式處理請求。