Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
在JavaScript、PHP和MSSQL中处理反斜杠_Php_Javascript_Sql Server_Backslash - Fatal编程技术网

在JavaScript、PHP和MSSQL中处理反斜杠

在JavaScript、PHP和MSSQL中处理反斜杠,php,javascript,sql-server,backslash,Php,Javascript,Sql Server,Backslash,在我写这篇文章之前,让我明确一点,我绝对不能改变我要展示给你们的字符串,它必须保持原样 我需要找到一种没有任何转义机制的解析字符串的方法。我有一个字符串:“A2&11203[3\813+!5>di”,我不得不处理这个程序使用它 SQL很好地解析了这个字符串(反斜杠和其他),但JavaScript和PHP一直将其用作转义机制,并删除数字8 在我的应用程序中发生的是,它接收到该字符串,然后使用JavaScript,将其与字符串一起重定向到网页,这里的问题是反斜杠正在被删除,我必须删除它 我在另一篇s

在我写这篇文章之前,让我明确一点,我绝对不能改变我要展示给你们的字符串,它必须保持原样

我需要找到一种没有任何转义机制的解析字符串的方法。我有一个字符串:“A2&11203[3\813+!5>di”,我不得不处理这个程序使用它

SQL很好地解析了这个字符串(反斜杠和其他),但JavaScript和PHP一直将其用作转义机制,并删除数字8

在我的应用程序中发生的是,它接收到该字符串,然后使用JavaScript,将其与字符串一起重定向到网页,这里的问题是反斜杠正在被删除,我必须删除它

我在另一篇stackoverflow文章中发现了这段代码,它可以满足我的需要,但我需要阻止JavaScript(最终是PHP)删除反斜杠

function post_to_url(path, params, method) {
    method = method || "post"; // Set method to post by default, if not specified.

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         }
    }

    document.body.appendChild(form);
    form.submit();
}
字符串需要完全原始处理,我刚刚检查了数据库,有几种情况下,到处都有多个反斜杠,而且几乎可以在英文键盘上找到任何字符


关于这个问题我能做些什么,有什么想法吗?我被迫使用JavaScript作为主要重定向程序。

我猜您的流是这样的:

var myvar = "<?php echo $var; ?>";
在PHP中,从SQL数据库获取数据并以JavaScript代码输出。然后,将其发送回PHP进行处理

在这种情况下,您需要在将字符串传递给JavaScript之前对其进行一些处理

您可以通过调用字符串来实现这一点

例如,与以下内容不同:

var myvar = "<?php echo $var; ?>";
var myvar=”“;
你应该:

var myvar = <?php echo json_encode($var); ?>
var myvar=
这意味着,无论字符串中有什么字符,JavaScript、反斜杠和所有字符中都会有精确的字符串


当JavaScript通过表单将其传递回PHP时,反斜杠会得到很好的维护——这对于任何表单都是正确的,因为用户可以键入他们想要的所有反斜杠。只需小心为正在使用的数据库类型使用适当的转义函数,以确保任何特殊字符(如反斜杠)正确转义。

由于无法正确转义反斜杠,我们改为传递其他4个字段来标识帐户,然后在php中提取帐户否,不再需要转义任何内容。

不能转义字符串完全是胡说八道。字符串甚至作为URL的一部分都无效,并且您的web浏览器是es在发送之前自动为您设置字符串的上限,这样转义至少会发生一次,那么为什么不在其他时间让您携带的数据保持有效?字符串在代码中的位置?字符串是绑定到帐户的主标识,对每个记录都是唯一的。字符串来自内置在主帐户中的应用程序将数据输入HTML页面的程序,我正在尝试找出如何从HTML页面继承该字符串,并且必须重定向到我的报表服务器。HTML处理器充其量是非常简陋的,老实说,我很惊讶它甚至可以处理JavaScript。不,我不知道主程序是用什么编写的,但它给了我能力在这个文档中,我使用JavaScript将页面指向运行php脚本的报表服务器。主程序->HTML文档(JavaScript重定向)->报表php服务器。我试图将变量从主程序传递到报表服务器。