PHP setcookie設(shè)置Cookie用法(及設(shè)置無效的問題)
更新時(shí)間:2011年07月13日 01:07:13 作者:
平時(shí)用Session比較多,很少用到Cookie,這次是為了解決Discuz!自動(dòng)同步登陸不得不用Cookie。
結(jié)果碰到一個(gè)問題,setcookie設(shè)置了Cookie并沒有生效,在瀏覽器端也沒有看到。查了一下,原來是setcookie是通過HTTP請求響應(yīng)的Header來完成的,需要在請求響應(yīng)內(nèi)容輸出之前執(zhí)行(就像其他Header設(shè)定一樣)。
在php.ini中error_reporting = E_ALL的情況下,輸出內(nèi)容之后再setcookie會彈出以下提示:
Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\b.php:2) in … on line …
但因?yàn)楫?dāng)時(shí)php.ini設(shè)置成了error_reporting = E_ALL & ~E_NOTICE,于是沒有任何提示,所以開發(fā)的時(shí)候還是建議設(shè)成error_reporting = E_ALL 方便觀察到一些異常情況。
附一個(gè)setcookie用法實(shí)例
a.php
<?php
setcookie("page", "a.php");
$page = $_COOKIE["page"] ? $_COOKIE["page"] : "unknown";
echo "From " . $page . "<br /><br />";
?>
This is a.php. Go to <a href="b.php">b.php</a>
b.php
<?php
setcookie("page", "b.php");
$page = isset($_COOKIE["page"]) ? $_COOKIE["page"] : "unknown";
echo "From " . $page . "<br /><br />";
?>
This is b.php. Go to <a href="a.php">a.php</a>
在php.ini中error_reporting = E_ALL的情況下,輸出內(nèi)容之后再setcookie會彈出以下提示:
復(fù)制代碼 代碼如下:
Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\b.php:2) in … on line …
但因?yàn)楫?dāng)時(shí)php.ini設(shè)置成了error_reporting = E_ALL & ~E_NOTICE,于是沒有任何提示,所以開發(fā)的時(shí)候還是建議設(shè)成error_reporting = E_ALL 方便觀察到一些異常情況。
附一個(gè)setcookie用法實(shí)例
a.php
復(fù)制代碼 代碼如下:
<?php
setcookie("page", "a.php");
$page = $_COOKIE["page"] ? $_COOKIE["page"] : "unknown";
echo "From " . $page . "<br /><br />";
?>
This is a.php. Go to <a href="b.php">b.php</a>
b.php
復(fù)制代碼 代碼如下:
<?php
setcookie("page", "b.php");
$page = isset($_COOKIE["page"]) ? $_COOKIE["page"] : "unknown";
echo "From " . $page . "<br /><br />";
?>
This is b.php. Go to <a href="a.php">a.php</a>
相關(guān)文章
php中選擇什么接口(mysql、mysqli)訪問mysql
我們知道,mysqli是PHP 5中新提供的MySQL接口,此接口使用了面向?qū)ο蟮乃枷搿J褂胢ysqli接口的代碼可讀性更強(qiáng),其執(zhí)行效率比mysql接口高2013-02-02Dedecms V3.1 生成HTML速度的優(yōu)化辦法
Dedecms V3.1 生成HTML速度的優(yōu)化辦法...2007-03-03php讀取csv數(shù)據(jù)保存到數(shù)組的方法
這篇文章主要介紹了php讀取csv數(shù)據(jù)保存到數(shù)組的方法,通過封裝的類文件實(shí)現(xiàn)這一功能,是對csv文件操作的實(shí)用技巧,需要的朋友可以參考下2015-01-01在WordPress中獲取數(shù)據(jù)庫字段內(nèi)容和添加主題設(shè)置菜單
這篇文章主要介紹了在WordPress中獲取數(shù)據(jù)庫字段內(nèi)容和添加主題設(shè)置菜單的方法,分別講解了get_option()函數(shù)和add_theme_page()函數(shù)的用法,需要的朋友可以參考下2016-01-01Ajax+Jpgraph實(shí)現(xiàn)的動(dòng)態(tài)折線圖功能示例
這篇文章主要介紹了Ajax+Jpgraph實(shí)現(xiàn)的動(dòng)態(tài)折線圖功能,結(jié)合實(shí)例形式分析了ajax結(jié)合jpgraph.php類庫繪制動(dòng)態(tài)折線圖的相關(guān)操作技巧,需要的朋友可以參考下2019-02-02php自定義函數(shù)實(shí)現(xiàn)JS的escape的方法示例
這篇文章主要介紹了php自定義函數(shù)實(shí)現(xiàn)JS的escape的方法,結(jié)合完整實(shí)例形式分析了php實(shí)現(xiàn)JS的escape功能函數(shù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07