Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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
使用POST方法使用Ajax从javascript向PHP发送大量字符_Javascript_Php_Ajax - Fatal编程技术网

使用POST方法使用Ajax从javascript向PHP发送大量字符

使用POST方法使用Ajax从javascript向PHP发送大量字符,javascript,php,ajax,Javascript,Php,Ajax,这是我的JS文件 function save() { var hist = document.getElementById("hist").value; var mission = document.getElementById("mission").value; var params = "history=" + hist+ "&mission=" + mission; var xmlhttp = new XML

这是我的JS文件

function save()
{

    var hist = document.getElementById("hist").value;
                var mission =   document.getElementById("mission").value;

            var params = "history=" + hist+ "&mission=" + mission;
 var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() 
        {
             if (this.readyState == 4 && this.status == 200 ) 
            {

                 UserAccountInfo =   this.responseText;
                 alert(UserAccountInfo);
            }
        }
        xmlhttp.open("POST","savecompany.php",true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send(params);  
}   
历史味精将是

由工程师Anas El Menoufi在担任工程师8年后创建 W.C Heraus GmbH的营销顾问和业务发展经理 在非洲和中东。自1983年以来,MYMSA在 埃及市场作为埃及和中东和北非地区的首批公司之一 专业提供解决方案、仪器仪表、咨询服务 以及一次和二次测试和测试的售后服务 许多领域的校准实验室

任务是

通过提供最好的服务来赢得客户的信任和满意 咨询、提高市场意识以及与 世界上最好的制造商

我们相信,建设我们的内部能力将反映在 市场

将这些变量发送到PHP文件后

<?php

    require "conn.php";


    $history= $_POST["history"];
    $mission = $_POST["mission"];

    $sql = " UPDATE company SET history ='$history' , mission='$mission'  where id='1'";
    mysqli_query($conn,$sql);


echo "done";
mysqli_close($conn);
?>
希斯特成为

由工程师Anas El Menoufi在担任工程师8年后创建 W.C Heraus GmbH的营销顾问和业务发展经理 在非洲和中东。自1983年以来,MYMSA在 埃及市场作为埃及和中东和北非地区的首批公司之一 专业提供解决方案、仪器仪表、咨询服务 以及一级市场的售后服务

和使命

旨在赢得客户的信任

只有!!! 为什么会发生这种情况???我怎样才能发送整个大消息

这是我的PHP文件

<?php

    require "conn.php";


    $history= $_POST["history"];
    $mission = $_POST["mission"];

    $sql = " UPDATE company SET history ='$history' , mission='$mission'  where id='1'";
    mysqli_query($conn,$sql);


echo "done";
mysqli_close($conn);
?>
首先,您应该在POST请求的正文/有效负载中发布此类数据,但以下是当前解决方案不起作用的原因:

如您所见,您的文本在文本中的&symbol之前停止-这是因为&symbol是一个URL组件,用于附加另一个查询参数-这需要编码到%26中,幸运的是JavaScript有一个函数来完成此操作,encodeURIComponent

创建params变量时,可以使用encodeURIComponent,如下所示:

var params = "history=" + encodeURIComponent(hist) + "&mission=" + encodeURIComponent(mission);

您可以将数据转换为php上的Javascript可以理解的内容,即

var params = ["history" : hist,
              "mission" : mission];
params = JSON.stringify( params );
然后在php端使用:

$history = $_POST['history'];
$mission = $_POST['mission';

@奥斯汀霍尔,我不这么认为。这是另一个问题嗯,这是一个相关的问题。您需要清理输入。您的问题之所以发生,是因为您没有清理JavaScript输入,但您也有一个巨大的SQL漏洞,它将继续导致您的问题。是时候了解SQL注入漏洞和参数化MySQL查询了-$history中的“a”将破坏您的站点。不,它不起作用: