当前位置: 首页 > 面试题库 >

为什么$ _POST变量会在PHP中转义?

蓝宜
2023-03-14
问题内容

当我的PHP脚本从AJAX POST请求接收html" target="_blank">数据时,$_POST变量将被转义。真正奇怪的是,这仅发生在我的生产服务器上(在Linux上运行PHP
5.2.12),而不在我的本地服务器(在Windows上运行PHP 5.3.1)上发生。

这是AJAX代码:

var pageRequest = false;
if(window.XMLHttpRequest)     pageRequest = new XMLHttpRequest();
else if(window.ActiveXObject) pageRequest = new ActiveXObject("Microsoft.XMLHTTP");

pageRequest.onreadystatechange = function() { }

var q_str = 'data=' + " ' ";

pageRequest.open('POST','unnamed_page.php',true);

pageRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
pageRequest.setRequestHeader("Content-length", q_str.length);
pageRequest.setRequestHeader("Connection", "close");

pageRequest.send(q_str);

这有什么原因吗?以及如何解决此问题,使其在两台服务器上均可工作?

编辑:我具有magic_quotes的以下设置:

                     Local   Master

magic_quotes_gpc     On      On
magic_quotes_runtime Off     Off
magic_quotes_sybase  Off     Off

问题答案:

您可能已在Linux服务器上启用了魔术引号:magic_quotes

当magic_quotes启用时,所有的’(单引号),“(双引号),\(反斜杠)和NUL都会自动以反斜杠转义。

禁用它们是一件好事,因为无论如何它们将从PHP 6开始被删除。 您还应该能够在脚本中禁用它们: set-magic-quotes-
runtime

不能取消
激活magic_quotes中负责在运行时转义POST数据的部分。如果可以,请在php.ini中将其禁用。如果无法做到这一点,请检查是否启用了magic_quotes,并对从POST获取的任何内容执行stripslashes():

if (get_magic_quotes_gpc())  
 $my_post_var = stripslashes($_POST["my_post_var"]);


 类似资料:
  • 问题内容: 当我的PHP脚本从AJAX POST请求接收数据时,将对变量进行转义。真正奇怪的是,这仅发生在我的生产服务器(在Linux上运行PHP 5.2.12)上,而不在我的本地服务器(在Windows上运行PHP 5.3.1)上发生。 这是AJAX代码: 这有什么原因吗?我应该如何解决这个问题,使其在两台服务器上都能正常工作? 编辑:我对magic_quotes具有以下设置: 问题答案: 您可

  • 主要内容:$_POST 变量,何时使用 method="post"?,PHP $_REQUEST 变量在 PHP 中,预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。 $_POST 变量 预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。 从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。 注释:然而,默认情况下,POST 方法的发送信息的量最大值为 8 M

  • 问题内容: 为什么JavaScript会提升变量? 设计师决定实施吊装时的基本原理是什么?还有其他流行的语言可以做到这一点吗? 请提供文档和/或记录的相关链接。 问题答案: 正如Stoyan Stefanov在“ JavaScript模式”一书中解释的那样,提升是JavaScript解释器实现的结果。 JS代码解释分两次进行。在第一遍中,解释器处理变量和函数声明。 第二遍是实际的代码执行步骤。解释

  • 问题内容: 我一直在PHP中看到该变量,但我不知道它的用途。我从来没有亲自使用过它。 有人可以告诉我该变量在PHP中如何工作吗? 问题答案: 它是对当前对象的引用,在面向对象的代码中最常用。 例: 这会将’Jack’字符串存储为所创建对象的属性。

  • 问题内容: 我正在学习Java,并且我知道您不能将内部范围内声明的变量命名为与外部范围内声明的变量相同的名称,如下所示 但是,我发现以下行为不合法 这不是两次声明的变量吗? 问题答案: 这不是两次声明的变量吗? 不它不是。因为它们都在不同的范围内。函数外部具有 类级别范围, 而 函数内部具有 方法/函数级别范围 。 具有不同作用域的两个变量具有相同的名称是合法的。 请务必阅读第6.3节。JLS 声

  • 如果把标志翻转过来,这个范围似乎与训练分数相符。我读过一期文章中关于cross_val_score翻转给定评分函数的符号的讨论,解决方案似乎是引入度量来使这种翻转不需要,我使用的是。这个问题讨论,但参数似乎也适用于。有没有办法让返回与其参数中指定的相同度量?或者这是一个我应该归档的错误?还是我的误会和的符号更改? 我希望这是一个足够具体的问题。开发人员将用户重定向到SO以获取不是清晰的错误报告或功