WordPress 博客程序登录的时候在登录页面中出现“Cookies因预料之外的输出被阻止。”的提示,其他连带的症状还有:会在页面顶部输出错误代码行的提示,错误信息基本上是“headers already sent by”,无法使用wordpress密码找回功能,进入后台后无法在线安装插件等不正常现象发生。
解决方法
出现这种问题的最常见的是使用了阿里云的虚拟主机用户,主要原因是服务器没有开启“输出缓冲区数据块”。
所以解决问题的方式是开启之,阿里云虚拟主机的用户可以访问阿里云后台,进入虚拟主机的管理页面,然后点击“高级环境设置”->“PHP.ini设置”,在PHP环境参数设置中点击开启“输出缓冲区数据块设置”,然后保存即可。
对于其他Apache服务器,可以直接修改 php.ini 文件来开启。编辑 php.ini 文件,找到 output_buffering ,设置值为 ON ,保存后重启 Apache,即可生效。
什么是输出缓冲区数据块
在没有开启缓冲区的情况下,执行 header() 函数的时候,浏览器收到之后会直接执行,如果后续再次使用 header 方法,则浏览器会提示,我已经收到过 header 了,不要在发过来了,就会提示“headers already sent by” 的错误。如果这个时候开启了 php 的缓存,则 header 数据会首先存放在缓存中,等到执行完成全部代码后,一次性全部发送给浏览器,就会避免出现多次发送 header 的问题。
WordPress 出现这种情况,主要是主题的 function.php 文件中有出现过重定向的代码,如果没有开启缓存而执行到了重定向的代码,则会报错。比如说如果主题中设置了后台登录保护代码,就可能会出现这个问题。简单非插件隐藏WordPress后台-防止暴力破解
同样,开启输出缓冲区功能可以解决在手机版 WordPress 无法登陆后台的错误。无法通过该URL读取WordPress站点。
感谢你的赏识与认可

支付宝

微信支付
使用手机访问这篇文章
本文许可协议 © CC BY-NC-SA 4.0 转载请注明来源
- 上一篇: 2017 Hello World !
- 下一篇: 告白墙PHP程序下载合集-这就是你要的情人节
学习了,如果以后遇到这个问题可以借鉴下了。
有一些虚拟主机架设的,没有这个设置PHP.ini选项。
最暴力的方法,进入FTP,把当前使用中的theme主题文件夹删除即可解决。
我之前遇到过,暴力解决就好了,在主机里没有找到PHP.ini到底在哪里
嗯,今天又遇到了,郁闷至极
通过Code的方法,暴力删除最近安装的插件和主题,未解决
在控制台的PHP.ini中添加 output_buffering = “4096” 后可以打开了
对了,某插件的 “ 移除中文本地化产生的不必要数据库查询 ”这个也会导致这种问题
也有可能不兼容部分服务器环境?