使用POST方法使用Ajax从javascript向PHP发送大量字符
这是我的JS文件使用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
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”将破坏您的站点。不,它不起作用: