2017-06-14 68 views
0

我想第一次設置cookie。我一直在關注W3學校的文檔,但它似乎並沒有爲我工作。問題設置cookies

這裏是我的代碼(一些命名省略這個例子):

$namenospace = 'thisnameexample'; 

function someSetup($somename){ 
    $nameofcookie = $somename . '_some_value'; 

    if(!isset($_COOKIE[$nameofcookie])) { 
     $someValue = rand(1, getrandmax()); 
     $cookielastsfor = time() + (86400 * 30); 
     setcookie($nameofcookie, $someValue, $cookielastsfor, "/"); 
    } 
    else { 
     $someValue = $_COOKIE[$nameofcookie]; 
    }; 

    return $someValue; 
}; 

$setSomeValue = someSetup($namenospace); 

正如你所看到的,我想檢查是否設置cookie,如果是,搶的價值和使用否則,請設置cookie,然後返回該值。

出於某種原因,此setcookie()函數不起作用。有沒有人有這方面的見解?

可能值得注意的是,這是一個WordPress的網站,如果這是相關的?

謝謝!

編輯:根據範圍更新了註釋中突出顯示的問題,但仍然無法按預期工作。

再次編輯:絕對不是重複。我的團隊和我發現了這個問題,並希望這個未標記爲重複的,因此請給出答案!

+0

1.你不調用'someSetup()' – RiggsFolly

+0

@RiggsFolly - 現在已經更新,我忘了更新那裏我已經改變了問題的代碼的名稱 –

+0

2.變量** SCOPE,Scope,範圍** .......''$ namenospace'在'someSetup()'函數內是INVISIBLE。如果你想在函數 – RiggsFolly

回答

1

確保您在輸出前設置了Cookie。你在哪裏打電話給你的功能?

作爲替代方案,您可以使用JS在客戶端設置cookie。

+0

這就是問題所在,歡呼聲。 –

+0

我會對此下注。再次DUPLICATE的https://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php/8028987#8028987 – RiggsFolly

+1

@RiggsFolly安靜的一天在辦公室? – James