`
ljl_xyf
  • 浏览: 636786 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php无法保存cookies问题解决

    博客分类:
  • php
阅读更多

今天弄php程序,突然发现一个问题,就是cookies无法保存,且不发生任何错误,经过一番查找发现问题如下:

因为程序在写Cookies是用的是@setcookie ( "url", "http://www.my400800.cn ", time()+3600*24, "/");

PHP 的 @、# 符号的意思

function foo($n)
{
    $result = 1/$n;
    return $result;
}
echo @foo(0); // 函数中会产生除 0 错误,但加上 @ 后并不显示该错误。
echo "end"; // 输出 end

# 注释符号

同 // 一样,# 是单行注释符(多行注释符为 /* */)。

由于使用了@setcookie,即便在写入cookies是发生错误,也不会输出,造成了无法发现问题。最后把@setcookie改成 setcookie,程序输出如下错误信息:

Warning: Cannot modify header information - headers already sent by (output started at

经过上网一查,发现原来在进行setcookie设置前不能有任何输出内容,然后就去检查代码,也没有发现在setcookie之前输出了东西,在搜索了一下,发现了问题所在,具体内容如下:

 

今天在WordPress中文论坛逛了一圈。坛子里人气不高,不过还是有很多高手的。会编写插件和模版的高手和连编辑文件都不会的初学者混在一起,论坛就是这样,哈哈。

看到好几个帖子里提到同一个错误,比如这个帖子里提到的:"Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\wp-config.php:1) in c:\program files\easyphp1-8\www\wp-login.php on line 9"

这是一个很典型的问题。WordPress的程序执行时会首先调用wp-config.php一类的配置文件,也会调用wp-db.php建立数据库连接 以备后用。这些文件只是做一些设置,并不输出html代码。设置完了后,程序本身开始执行了,有些程序会使用header命令设置一个HTTP头。由于 HTTP头必须在html代码输出之前设置好,否则html代码已经开始往客户端发送了,HTTP也就已经发送过了,没法追回来重新设置了。 WordPress CodeX里对这个问题作出了说明:《How do I solve the Headers already sent warning problem?》。文章指出:要确保各个文件——尤其是经常被编辑的wp-config.php文件——以<?php开头,以?>结尾,前 后不能有其他字符。具体到上面的例子,很明显,提示信息说wp-config.php的第一行就开始了html输出,这有可能是第一行的<?php 部分前面被加上的其他字符,比如空格一类的。再联想到以前提到的BOM的问题,那么非常有可能是因为这位朋友使用了Windows的记事本编辑了wp-config.php文件并保存成了UTF-8编码的文档,从而因为BOM的三个字符的输出造成了header命令执行出错

 

解决方法

WordPress 中文论坛没有提供全文搜索的功能,只能搜索标题,所以我用Google搜索了一下Cannot modify header information site:wordpress.org.cn,好像碰到这个问题的人还真不少。目前大家用的WordPress主要是WordPress英文原版和几个 WordPress中文版。我的中文包又不包含wp-config-sample.php文件,自然不关我的事;WordPress原版用的ASCII 码,自然不包含BOM,也不会出这样的错误;xigang制作的WordPress中文版在WordPress中文论坛有下,我去下载了 WordPress 2.0.4和2.0.3这两个,检查了一下,没有问题;点点游的WordPress 2.0.4中文版里,wp-config-sample.php文件用的是GB2312编码和DOS行尾符,GOD!不过这样也好,如果有人用记事本修改 了这个文件,DOS行尾符不会造成编辑问题,GB2312编码不会造成BOM的问题,呼。

唉,如果你要用WordPress架Blog,还是扔掉记事本,装个UltraEdit或者EditPlus吧!

 

 

分享到:
评论

相关推荐

    php设置session值和cookies的学习示例_.docx

    ### PHP 设置 Session 值与 Cookies 的学习示例解析 #### 概述 本文档旨在通过具体的示例代码,帮助读者理解PHP中的Session和Cookies的工作原理及其应用方式。特别是对于那些希望通过HTTP请求(如使用`...

    解析php通过cookies获取远程网页的指定代码

    `PHP之COOKIE支持详解`和`PHP setcookie设置Cookie用法(及设置无效的问题)`等文章会涵盖如何设置、读取和删除Cookies,以及解决可能出现的问题,如在IE下设置Cookie失效。 `PHP setcookie指定domain参数后,在IE下...

    PHP程序设计-3期(KC016) 3.12.1开始session常见问题.docx

    本文将深入探讨在"PHP程序设计-3期(KC016) 3.12.1开始session常见问题.docx"中提到的两个主要问题,并提供相应的解决方案。 ### 问题 1:启动 session 的函数使用地方错误 在PHP中,启动session的主要函数是`...

    微信小程序实现Session功能及无法获取session问题的解决方法

    大概思路就是借助小程序本地储存+网络请求的header可读可写来实现类似浏览器的cookies保存session功能。 直接上代码 function NetRequest({url, data, success, fail, complete, method = POST, header = { '...

    64位php_curl.dll文件

    解决这个问题的方法是替换合适的php_curl.dll文件,如压缩包中的"php_curl.dll"。这个文件应该是与64位WAMP服务器相匹配的版本,确保能与系统和PHP版本兼容。 替换步骤如下: 1. **备份原有文件**:首先,备份现有...

    无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法

    如果会话机制出现问题(例如,会话ID无法保存),就会导致此错误。 2. **服务器日志**:查看服务器日志是诊断问题的关键。日志中可能会包含有关错误的具体信息,帮助定位问题所在。 3. **PHP配置**:PHP的配置...

    PHP中文手册,PHP手册

    《PHP中文手册》是每一位PHP Web程序员不可或缺的学习和...《PHP中文手册》包含了以上所有内容的详细解释,是PHP开发者解决问题、提升技能的重要工具。持续学习和查阅手册,能帮助开发者在PHP编程的道路上不断进步。

    IIS+PHP+MYSQL+PHPMYADMIN配置教程

    #### 八、常见问题及解决方案 1. **Cookies 登录问题**: - 如果出现“必须启用 Cookies 才能登录”的错误,需要进行以下操作: - 将`phpMyAdmin`安装目录下的`config.sample.inc.php`文件重命名为`config.inc....

    PHP实例开发源码—phpbook 雨楠PHP留言板.zip

    【PHP实例开发源码—phpbook 雨楠PHP留言板】是一个用于教学和实践的PHP项目,它展示了如何使用PHP语言构建一个简单的在线留言板系统。...实践中遇到的问题和解决策略将有助于提升开发者的问题解决能力和代码优化意识。

    php curl批量请求url

    本篇文章将深入探讨如何使用PHP的cURL库进行批量URL请求,并关注可能遇到的问题及解决方案。 首先,批量请求URL通常是为了提高效率,例如在数据抓取、接口测试或自动化任务中。批量请求的关键在于创建一个循环,...

    DZ论坛无法显示头像.doc

    ### DZ论坛无法显示头像的问题分析与解决方法 #### 一、问题概述 在使用DZ(Discuz!)论坛的过程中,用户可能会遇到论坛头像无法正常显示的问题。这不仅影响了用户的视觉体验,还可能导致论坛的部分功能无法正常...

    PHP实例开发源码—水平凡php内容管理系统.zip

    【PHP实例开发源码—水平凡php内容管理系统.zip】是一个包含PHP编程语言的实例应用,主要是一个内容管理系统(CMS)的源代码。...同时,这也是一个很好的实践机会,可以锻炼代码阅读能力,提升问题解决技巧。

    phpcms web发布session过期问题解决

    2. **服务器环境问题**:有时,服务器的session存储机制(可能是文件系统或数据库)出现问题,导致session数据无法正确保存。检查session存储路径是否可写,或者数据库连接是否正常。 3. **浏览器设置**:虽然较...

    PHP实例开发源码—企管美图爬虫源码 php版.zip

    7. **异常处理与日志记录**:在爬虫开发中,异常处理(try-catch语句块)和日志记录(error_log、Monolog库等)是必不可少的,它们能帮助开发者追踪和解决运行时可能出现的问题。 8. **限制与反反爬**:为了避免被...

    新闻系统用PHP写的

    8. **错误处理与日志记录**:良好的错误处理机制可以及时发现并解决问题,日志记录则有助于后期排查问题。 9. **安全性**:防止SQL注入、XSS攻击(跨站脚本)和其他常见Web漏洞,确保系统的安全性。这通常通过输入...

    PHP实例开发源码—MyEngine开源搜素引擎爬虫php版 beta.zip

    这个项目名为"MyEngine",它是一个基于PHP的开源解决方案,专为开发者提供了一个实践学习和构建自定义搜索引擎的机会。在PHP的世界里,爬虫的开发对于数据抓取、网站分析以及信息聚合等任务至关重要。 在这个项目中...

    PHP中session全面教程.txt

    #### 七、Session的常见问题与解决方案 - **Session丢失问题**: - 检查是否在输出任何内容之前调用了`session_start()`。 - 确保Cookie没有被禁用。 - 检查Session配置是否正确设置。 - **Session跨域问题**: ...

    php查询12306火车票

    在本文中,我们将深入探讨如何使用PHP来查询12306火车票信息,这是一个非常实用的技术,尤其对于需要实时监控火车票动态的用户来说。...在探索过程中,你可能会遇到更多问题,但解决它们将使你的编程技能更上一层楼。

    php电子教程,供大家学习借鉴

    9. **cookies**:通过setcookie()函数设置cookies,实现跨页面数据共享,但安全性较会话低。 ### 数据库操作 10. **MySQLi或PDO**:PHP提供了MySQLi和PDO(PHP Data Objects)扩展来连接和操作MySQL数据库,进行...

    php根据IP自动切换城市 v1.0

    9. **错误处理与日志**:良好的错误处理机制能帮助开发者追踪并解决问题。系统应该包含适当的错误捕获和记录,如使用`try...catch`结构,并将错误信息写入日志文件。 10. **用户体验**:确保城市切换过程对用户透明...

Global site tag (gtag.js) - Google Analytics