Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP 5.2和5.3中的mysql\u real\u escape\u字符串?_Php_Content Management System_Escaping_Ckeditor - Fatal编程技术网

PHP 5.2和5.3中的mysql\u real\u escape\u字符串?

PHP 5.2和5.3中的mysql\u real\u escape\u字符串?,php,content-management-system,escaping,ckeditor,Php,Content Management System,Escaping,Ckeditor,我制作了一个简单的内容编辑器,它利用了CKEditor。到目前为止,它在我的本地web服务器上运行良好,但当我将它上传到远程服务器时,它就不正常了 下面是我的本地服务器的输出示例 <img alt="" src="usrfiles/default_placeholder.png" style="width: 150px; height: 150px; " /> 我没有对本地和远程使用的代码进行任何修改。当然,除了更改数据库指针(服务器、数据库名称、用户名等)之外。我现在唯一的怀疑是

我制作了一个简单的内容编辑器,它利用了CKEditor。到目前为止,它在我的本地web服务器上运行良好,但当我将它上传到远程服务器时,它就不正常了

下面是我的本地服务器的输出示例

<img alt="" src="usrfiles/default_placeholder.png" style="width: 150px; height: 150px; " />
我没有对本地和远程使用的代码进行任何修改。当然,除了更改数据库指针(服务器、数据库名称、用户名等)之外。我现在唯一的怀疑是提交文本时使用的mysql\u real\u escape\u string()

我的本地服务器使用PHP版本5.3.6,远程服务器使用PHP版本5.2.13。在这两个版本上,mysql\u real\u escape\u string()的行为有何不同

编辑 在回复CodeCaster时,
“请提供更多有关此“输出”来源的上下文。它如何存储在数据库中,如何存储和检索它,如何查看它。它很可能与mysql_real_escape_string()无关,就像它与魔术引号和htmlentities一样。”


输出来自SQL查询。它作为文本数据类型存储在数据库中。它通过PHP和SQL查询存储和检索。我在插入或更新数据时使用mysql\u real\u escape\u string()。在我的本地服务器上,我可以使用mysql\u real\u escape\u string()中包含的查询插入它,并在不更改存储数据的情况下检索它,然后它以HTML代码的形式输出数据。在远程服务器上,此系统会中断。

我只是胡乱猜测,但可能是在您的生产服务器上启用了魔术引号,因此每当您从数据库检索内容时,都会自动添加反斜杠,当您收到满是斜杠的html时,请务必将html作为源放在其内容中,因此应用html编码

最好的解决办法是关闭magic_报价。使用PHP的解决方案:

ini_set( 'magic_quotes_gpc', 0 );
使用htaccess时:

php_flag magic_quotes_gpc off

要删除当前的代码,只需应用
stripslashes($string)
并保存(我的意思是在禁用magic_引号之后)

我还没有真正体验到PHP5.2.13或PHP5.3.6之间的任何差异。然而,我很肯定这就是问题所在。请提供更多的上下文来说明“输出”的来源。它如何存储在数据库中,如何存储和检索它,如何查看它。它很可能与mysql\u real\u escape\u string()没有任何关系,就像它与魔术引号和htmlentities一样。嗨,我需要调用每个页面上的代码ini\u集吗?或者我只需要为每个访问该网站的人打一次电话吗?如果你有一个前台控制器方法,请将其放在该页面中;或者在合理的位置使用,这取决于您的设计。否则,请尝试htaccess方法,这样您就不必反复重复。或者直接修改你的php.ini,如果可以的话。我曾考虑过使用.htaccess,但我对编辑它没有太多经验。我必须在每个子文件夹上都放置.htaccess吗?或者根文件夹可以吗?
php_flag magic_quotes_gpc off