PHP setcookie设置Cookie用法(及设置无效的问题)

2015-01-24信息快讯网

平时用Session比较多,很少用到Cookie,这次是为了解决Discuz!自动同步登陆不得不用Cookie。

结果碰到一个问题,setcookie设置了Cookie并没有生效,在浏览器端也没有看到。查了一下,原来是setcookie是通过HTTP请求响应的Header来完成的,需要在请求响应内容输出之前执行(就像其他Header设定一样)。

在php.ini中error_reporting = E_ALL的情况下,输出内容之后再setcookie会弹出以下提示:
 
Warning: Cannot modify header information C headers already sent by (output started at C:\xampp\htdocs\b.php:2) in … on line … 

但因为当时php.ini设置成了error_reporting = E_ALL & ~E_NOTICE,于是没有任何提示,所以开发的时候还是建议设成error_reporting = E_ALL 方便观察到一些异常情况。

附一个setcookie用法实例
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函数array_merge用法一例(合并同类数组)
php存储过程调用实例代码
php中导出数据到excel时数字变为科学计数的解决方法
php中删除字符串中最先出现某个字符的实现代码
php数组去重的函数代码
set_include_path和get_include_path使用及注意事项
PHP中CURL方法curl_setopt()函数的参数分享
mysqli_set_charset和SET NAMES使用抉择及优劣分析
PHP中header和session_start前不能有输出原因分析
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
域名和cookie问题(域名后缀)
详解php的魔术方法__get()和__set()使用介绍
PHP 之Section与Cookie使用总结
php中使用cookie来保存用户登录信息的实现代码
PHP中的cookie不用刷新就生效的方法
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
PHP 获取MySQL数据库里所有表的实现代码
php中使用explode查找某个字符是否存在的方法
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
php array_pop()数组函数将数组最后一个单元弹出(出栈)
php array_map()数组函数使用说明
php array_walk() 数组函数
php array_intersect比array_diff快(附详细的使用说明)
php设计模式 Observer(观察者模式)
session在PHP大型web应用中的使用
php session安全问题分析
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
php中session_unset与session_destroy的区别分析
PHP curl_setopt()函数实例代码与参数分析
php利用cookie实现访问次数统计代码
php cookies中删除的一般赋值方法
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
php中用数组的方法设置cookies
The specified CGI application misbehaved by not returning a complete set of HTTP headers
让PHP COOKIE立即生效,不用刷新就可以使用
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
PHP中删除变量时unset()和null的区别分析
©2014-2024 dbsqp.com