问题标签 [magic-quotes-gpc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1362 浏览

joomla - Joomla 安装魔术引号问题

最新的 Joomla 3.0 需要关闭魔术引号才能开始安装。

像往常一样,我使用在我的 joomla 文件所在的子文件夹中创建的 php.ini 将其关闭。

在我的 phpinfo 中,magic_quotes_gpc 正在关闭。但是在我的 joomla 安装页面中,魔术引号仍然显示“否”。

有任何想法吗?

0 投票
1 回答
184 浏览

php - 插入带有 php 和魔术引号的 HTML 代码

我不是专家,所以请不要笑:)

我正在编写一个简单的脚本来调整一些 HTML,我需要将它们存储在我的数据库中。

我有魔术报价,我知道它已被弃用,但这是一个本地脚本。

当我尝试在日志中插入我的 html 字符串时,单引号出现错误:'

我怎样才能解决这个问题?

我的PHP代码是:

这是我要插入的一段代码:

0 投票
1 回答
5547 浏览

php - 为什么在 php.ini 中禁用魔术引号不生效?

我在根目录中的php.ini文件末尾禁用了魔术引号,并且没有任何变化。我仍然在$_POST条目中的单引号前出现反斜杠。所以我将一个php.ini文件放在与正在运行的 PHP 文件相同的目录中,并且只包含禁用魔术引号的行,但仍然没有任何变化。

我在这里想念什么?

GoDaddy共享服务器上的 PHP 5.3.24 。

php.ini文件:

0 投票
3 回答
4023 浏览

php - json_decode() 在网络服务器上不起作用

我有一个在我的本地主机服务器上完美运行的 php 脚本。

当我将所有内容从 localhost 移动到 Web 服务器时,我json_decode无法正常工作。

我已经尝试过json_encode,仍然没有。

这种行为可能有什么问题?

我的代码:

$productsArr = json_encode($_GET['object']);

$_GET['object']是经过验证的 JSON。

我的最后一个选择可能是magic_quotes,但我不知道是否可以使用 cPanel 更改 PHP.ini 文件,这是我对服务器的唯一访问权限。

我会很感激任何想法。

编辑:

这是我的网址的一部分:

如果这很重要,我正在使用这个标题:

0 投票
2 回答
923 浏览

php - 需要调用 mysql_real_escape_string() 两次

我有一些用户输入数据被放入 MySQL 数据库(根据 phpMyAdmin 为 5.5.8 版) - 我发现mysql_real_escape_string()在下面的示例中必须调用两次,否则不会将反斜杠添加到用户输入文本中,例如“SHE'S A伟大的船不是她”

当我尝试将那种类型的“包含引号的文本字符串”写入我的数据库时会出现问题——用户输入字符串被写入数据库时​​没有反斜杠——除非我调用mysql_real_escape_string()两次。

我使用 phpMyAdmin 查看新写入的数据库记录,并且用户的 text-string-with-quotes 在引号上没有转义(没有反斜杠)。如果我从数据库中读回该文本字符串,则不会转义引号,即。我不必调用stripslashes()来反转使用mysql_real_escape_string().

代码如下。当我调用 get_magic_quotes_gpc() 时,它显示它们已被禁用。

我的期望是这样的:如果用户输入一个文本字符串,如“SHE'S A GREAT BOAT ISN'T SHE” ——然后我在该用户输入文本上调用mysql_real_escape_string() 一次,并将其写入数据库,这 一次调用mysql_real_escape_string()创建如下所示的文本字符串:

\"她\'SA GREAT BOAT ISN\'T She\"

但是写入数据库的文本(见下文)显示没有转义,只是原始用户输入文本及其所有未转义的引号。

这是将用户文本字符串写入数据库的 PHP 代码:

当我使用 phpMyAdmin 查看数据库时,文本字符串中没有斜线。当从数据库中检索这个字符串时——它看起来像这样: “SHE'S A GREAT BOAT ISN'T SHE”

这让我觉得我很容易受到注射攻击。

所以我通过添加第二个调用来修改上面的代码mysql_real_escape_string,现在当我查看数据库时,文本字符串最终看起来像这样:

\"她\'SA GREAT BOAT ISN\'T She\"

这是修改后的代码:

经过以上,最后在phpMyAdmin中,当我查看刚刚写好的数据库记录时,文字看起来是这样的:

\"她\'SA GREAT BOAT ISN\'T She\"

为什么我要mysql_real_escape_string()在这里打两次电话?

0 投票
1 回答
1182 浏览

php - magic_quotes_gpc 不显示在 php 信息页面上

我正在观看教程视频来学习 php,并且我正在尝试设置我的计算机以使用 php。虽然视频告诉我如何关闭magic_quotes_gpc,但它根本没有显示在php信息页面上,所以请你帮我解决这个问题。

笔记:

1) 我正在开发 PHP 版本 5.4.10

2)我还使用常规文本编辑器对 php.ini 进行更改

0 投票
0 回答
1065 浏览

javascript - 为什么在这种情况下应用魔术引号?

我不能发布我公司的专有代码,但这里有一些概念代码应该能说明问题。它可能不会没有语法错误。

服务器 1: PHP 5.3.5 , php.ini magic_quotes_gpc = On(默认)

在这个服务器上,我们使用 PHP 渲染一个页面。该页面有一个带有附加到单击事件的 JavaScript 的按钮。JavaScript 发布到第二台服务器上的 URL,如下所示:

服务器 2:PHP 5.4.9,(从 PHP 5.4 开始删除了魔术引号“功能”)

存储的数据/tmp/datalog是 JSON 数据,但所有引号都用反斜杠转义。这显然像是一个魔术引号问题。事实上,我通过在 server1 上禁用魔术引号并回收 Apache 很容易地解决了这个问题。

但我对它最初是如何崩溃的感到困惑。我在 JavaScript 中的 POST 之前放置了一个“警报”,并且 JSON 似乎没有被转义。但是一旦它到达 server2 并写入磁盘,它就会被转义。服务器 2 有 PHP 5.4.9,所以它甚至没有魔术引号“功能”,实际上它关闭了 server1 上的魔术引号解决了这个问题。很明显,server1 导致了这个问题。

我想不通的是,PHP 魔术引号是如何在我的 JavaScript 代码中的警报和到 server2 的 POST 之间应用的?JavaScript 代码没有在该路径中回调 server1 上的 PHP ...我最好的猜测是,在构建页面时字符已经被转义,并且在 javascript 从页面检索数据之前,并且 JavaScript 警报隐藏了以某种方式从我这里......这可能吗?

可能有一个非常明显的答案,但我对这些东西比较陌生。我希望有人能指出我忽略了什么。

0 投票
0 回答
1135 浏览

php-extension - 由于魔术引号错误,ownCloud 未安装

我想在我的服务器上安装 ownCloud 供个人使用,但它给出了错误。

“Magic Quotes 已启用。ownCloud 要求禁用它才能正常工作。Magic Quotes 是一个已弃用且大部分无用的设置,应该禁用它。请让您的服务器管理员在 php.ini 或您的网络服务器配置中禁用它。”

“PHP 模块已安装,但仍列为缺失?请让您的服务器管理员重新启动 Web 服务器。”

img 是:http ://www.imageshack.com/i/f6zb8yp 我试图通过 .htaccess 文件和 php.ini 禁用魔术引号,但它仍然给出错误

我正在使用来自 godaddy.plz 的 linux-os 主机有人帮忙。

0 投票
3 回答
372 浏览

php - php get_magic_quotes_gpc() 如何去除插入的转义字符?

我正在构建我的联系表单电子邮件地址验证脚本。调试它并使用所有通过的有效电子邮件地址运行基本测试后,我继续测试无效地址。我的第一个测试是.ala.dom.com明显无效的起始点和结束点。我希望得到我的错误信息。然而; 我的主机已将其设置为magic_quotes打开,而电子邮件却通过了,因为地址的整个本地部分都用“这样的”进行了转义".ala."@dom.com

这是到达电子邮件收件箱的实际标题的摘录 -

我的主机000webhosts.com有一个免费帐户,所以即使他们只使用php 5.2.*我也无法访问php.ini来更改设置,因此我需要以编程方式去除插入的字符,或者找到另一种解决方法。我完全不知道如何最好地处理这个问题。我的验证脚本是 -

随意调整它,因为我正在从http://www.linuxjournal.com/article/9585?page=0,0上的文章“使用 PHP 验证电子邮件地址,正确的方式”中调整它

在完成了这里提供的所有帮助并完成了许多导致我仍然卡住的实验之后。虽然我可以通过逐字复制http://www.linuxjournal.com/article/9585?page=0,0上的原始参考文章示例来完成工作,这一切都很好,但我不能做的是调整它除了更改会破坏对象的预匹配字符串之外。因此,如果有人能找到一种方法来使其更具适应性,即作为外部函数或类可移植,以便可以随意重用。我将非常感谢您的帮助。

所以我将把它标记为已回答,但会继续阅读评论和任何新答案,希望有一天能够理解究竟是什么阻止了这个子程序被分离出来并更灵活地使用。

0 投票
2 回答
1803 浏览

linux - 即使在 php5 fpm .ini 文件中禁用,Linux 魔术引号仍然有效

所以前不久安装了nginx,一直想不通怎么关闭magic_quotes_gpc。在 php5-fpm php.ini 中有以下几行:

但是,当我运行 phpinfo() 时,magic_quotes_gpc 的本地和主值仍然打开,并且它说配置文件路径是 /php5/fpm/ ,但没有加载配置文件(例如,配置文件已加载:(无))

如果您需要更多信息,请告诉我。谢谢您的帮助。

输出ps axu | grep php5

输出ls -alF /php5/fpm/

输出ls -alF /etc/php5/fpm/