【问题标题】:Retrieving textarea contents with PHP. Getting added backslashes使用 PHP 检索 textarea 内容。添加反斜杠
【发布时间】:2023-03-10 07:40:01
【问题描述】:

我正在构建一个 Web 应用程序,它应该让用户更容易为给定的实用程序生成正确的 XML。

作为一个简单的测试,我创建了一个包含生成的 XML 的文本区域。然后我创建了一个带有 jQ​​uery 处理程序的按钮 (<input type="button">),它将文本区域的内容发送到我的 PHP 应用程序,该应用程序将处理数据并将各种项目放入 .我正在使用将数据发送到 PHP 的代码如下(假设 'this' 是一个复杂对象,doImport() 是该对象中的一个函数......这工作正常):

doImport :  function () {
  var $ = this.jQuery,
   js = this,
   xml = $('textarea#xmlInput').val();

  $.post(this.selfRef, {
   import : xml
  }, function (json) {
   if (json.status) {
    $('table#tableArea tbody').html(json.tableInfo);
   } else {
    alert("Error occurred:\n" + json.message);
   }
  }, 'json');
 },

我可以使用 Firebug 检查数据,并且可以正确地从文本区域获取 XML 数据。我希望我的 PHP 应用程序能够生成 JSON 结果。

接下来,在 PHP 端,当我使用 $_REQUEST['import'] 检索 POST 信息时,我得到以下信息:

<?xml version=\"1.0\"?> [...]

换句话说,双引号被反斜杠转义了。

我已经尝试逐个字符地检查字符串,并且确实在$_REQUEST['import'] 返回的字符串中看到了反斜杠。

我知道我可能忽略了一些极其简单的事情,但是对于我的一生,我无法弄清楚我做错了什么。

问候,

拉尔3里

【问题讨论】:

  • 请添加一个合理的问题标题。通过设置标签来指定主题/语言。 :)

标签: php jquery textarea


【解决方案1】:

您的 PHP 安装已打开“magic_quotes”。这是很久以前引入的“安全”功能。 (真的,它只会导致像这样的问题恕我直言)。

我相信您必须在 php.ini 中将其关闭(如果您使用的是 linux,通常可以在 /etc 中找到)。改变

magic_quotes_gpc = On 

magic_quotes_gpc = Off

如果这不起作用,您可以在输入中使用stripslashes() 函数。

$_POST['import'] = stripslashes($_POST['import']);

希望有帮助!

【讨论】:

    猜你喜欢
    • 2015-10-23
    • 2014-04-07
    • 2017-05-12
    • 1970-01-01
    • 2019-07-04
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多