簡體   English   中英

通過PHP設置Cookie在Chrome中有效,但在Firefox或IE中不起作用

[英]Setting Cookie via PHP works in Chrome but not Firefox or IE

我有一個問題,其中設置cookie在chrome中可以完美運行,但在IE或Firefox中卻不能。 所有的瀏覽器都是當前版本,我在Windows 8計算機上。 我試圖設置一個持續一年的cookie。

我可以驗證IE和firefox是否從其他插件和3rd party服務創建的網站上接收到其他cookie,但它只是不想接受我嘗試設置的cookie。

通過Firefox中的螢火蟲,我試圖查看被拒絕的cookie,但是沒有列出任何cookie,就像我的cookie只是不想在chrome之外工作一樣。

這段代碼在我的wordpress網站內的functions.php文件中:

add_action( 'init', 'visitor_cookie');
function visitor_cookie() {
    if (!isset($_COOKIE['returning_visit'])) {
        $traffic_type = 'hd';
        $timestring = microtime();
        $pieces = explode(" ", substr($timestring, 2));
        $pieces[0] = "1".substr($pieces[0],0,3);
        $visitor_id = $traffic_type.dechex($pieces[1]) . dechex($pieces[0]);
        $expire = time()+60*60*24*360;
        $path = '/';
        $domain = parse_url(get_option('siteurl'), PHP_URL_HOST);
        setcookie(
            'returning_visit', 
            $visitor_id, 
            $expire, 
            $path, 
            $domain
      );
    }
}

筆記:

  1. 注意,我的域當前是development.mydomain.com,它將移至mydomain.com
  2. 這不是在本地主機/服務器上,而是在托管公司上
  3. 該cookie應該在我的整個網站上都可用。
  4. Cookie有效期設置為一年

除了在瀏覽器中查看cookie之外,我還使用此代碼來驗證cookie,該cookie再次以chrome顯示輸出,但沒有其他瀏覽器。

<?php echo "'".$_COOKIE['returning_visit']."'"; ?>

UPDATE

問題是僅在以admin身份登錄時才設置cookie。 cookie確實已設置。 我創建了一個更特定於wordpress的問題:

問題是我的主機緩存頁面。 需要取消緩存頁面才能運行適當的php代碼。 管理員已禁用緩存,這就是為什么我將cookie作為管理員而不是普通用戶的原因。

我讀了你的更新

問題是僅在以admin身份登錄時才設置cookie。 cookie確實已設置。

看起來像事件處理程序

add_action( 'init', 'visitor_cookie');

僅當用戶是管理員時才被觸發。

我相信您可以在Chrome上執行管理會話,而在其他瀏覽器上以訪客身份工作。

將東西放在if( is-admin )表達式之外

暫無
暫無

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

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