在localhost上更正html标记,但在web中即使是相同的php代码和数据库中也会进行清理

在localhost上更正html标记,但在web中即使是相同的php代码和数据库中也会进行清理,php,html,apache,codeigniter,web,Php,Html,Apache,Codeigniter,Web,我正试图找出一个我偶然发现的奇怪问题: 由于Ansible和Vagrant,我在本地和外部服务器上使用相同的web环境 我使用Ubuntu、ApacheWebServer、MySQL、PHP7和CodeIgniter3 在编辑表单上,我在localhost上看到了正确的HTML标记 但是当我从云(一个外部Web服务器)打开同一个页面时,HTML标记在Chrome和Firefox上被清除 这种行为的原因是什么?如何防止经过消毒的html标记?如果您没有在配置文件application/conf

我正试图找出一个我偶然发现的奇怪问题:

由于Ansible和Vagrant,我在本地和外部服务器上使用相同的web环境

我使用Ubuntu、ApacheWebServer、MySQL、PHP7和CodeIgniter3

在编辑表单上,我在localhost上看到了正确的HTML标记

但是当我从云(一个外部Web服务器)打开同一个页面时,HTML标记在Chrome和Firefox上被清除


这种行为的原因是什么?如何防止经过消毒的html标记?

如果您没有在配置文件application/config/config.php或通过apache(in.htaccess或apache conf)正确设置CI_ENV,那么您可能会在两台不同的机器上获得不同的行为

您还应该检查application/config/config.php中的该值,并查看其设置:

$config['global_xss_filtering'] = FALSE;
显然,如果您费心在这些位置定义不同的config.php值,您可能还需要检查它们:

application/config/development/config.php
application/config/testing/config.php
application/config/production/config.php
作为一个健全性检查,您可能希望定义一个如下所示的控制器方法,并查看它是否在各自的机器上输出不同的值:

public function ci_check() {
    echo CI_ENV;
}

如果您发现机器具有不同的CI_ENV值,则可能是每台机器正在为配置值全局_xss_筛选加载不同的配置文件。这可能会导致您看到的问题。如果看不到更多的代码,很难说。

试试这个:用这个代替这个地方。你确定php配置文件是一样的吗?@Jesseschoker,是的,php配置文件是一样的。@Arun,它不能解决这个问题。还是一样。当您将字符串包装到htmlentities()中时会发生什么情况?不必检查$config['global_xss_filtering']=FALSE;