![](/img/trans.png)
[英]CSS generated via PHP ignored in Firefox but works in Chrome, IE8
[英]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
);
}
}
筆記:
除了在瀏覽器中查看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.