哎,有一个教训,php不能setcookie?
教训!......
解决办法:
在文件最顶部加上如下代码:
ob_start(); date_default_timezone_set(‘Asia/Shanghai‘);
百度goolge下原因:
查了一下,原来是setcookie是通过HTTP请求响应的Header来完成的,需要在请求响应内容输出之前执行(就像其他Header设定一样)。
一、程序文件存在 BOM 代码,对于这种情况,只需将源代码拷贝出来,然后新建一个文件保存进去即可。至于如何查询文件是否存在 bom 代码,可参考本站文章:
二、检查PHP.ini里面相关cookie的设置,配置相关可以网络上面搜索。
三、php代码中使用了header()函数,且在 header 前面存在空格或者换行。header()函数发送一段文件头给浏览器,但是如果在使用这个函数之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会提示出错。一般的情况下,清除掉前面的空格就可以了。但如果还是不行,你可以按如下操作:
在页面顶部加上:
ob_start();//控制您的浏览器cache,加在setcookie代码之前,一般加在页面顶部 ob_get_clean();//输出浏览器cache,看看结果是否存在cookie,加在setcookie代码之后,一般加在页面最后
本文出自 “PHPer许琴-专注于PHP技术” 博客,请务必保留此出处http://xuqin.blog.51cto.com/5183168/1363930