Php 未使用AJAX将数据发布到$\u POST变量中
我的一个脚本有问题。服务器使用php运行,我使用AJAX发布数据。这是我的剧本 PHP脚本:Php 未使用AJAX将数据发布到$\u POST变量中,php,ajax,Php,Ajax,我的一个脚本有问题。服务器使用php运行,我使用AJAX发布数据。这是我的剧本 PHP脚本: <?php include './connConf.php'; if (isset($_POST['pStr'])){ $preStr=$_POST['pStr']; $query="SELECT * FROM advisory WHERE projname in (SELECT projname FROM advisorydata WHERE prefixStr LIKE '
<?php
include './connConf.php';
if (isset($_POST['pStr'])){
$preStr=$_POST['pStr'];
$query="SELECT * FROM advisory WHERE projname in (SELECT projname FROM advisorydata WHERE prefixStr LIKE '%$preStr')";
$result=mysql_query($query);
$num=mysql_numrows($result);
if ($num > 0){
echo "<font style=\"font-size:12px\" color=\"#FF6820\" face=\"Century Gothic\"><b>Search Result :</b></font><br><br>";
for ($x=0;$x<$num;$x+=1){
echo "<font style=\"font-size:12px\" color=\"#FFFFFF\" face=\"Century Gothic\">Project Name:   </font><font style=\"font-size:11px\" color=\"#C0FFFF\" face=\"Century Gothic\"><b>".mysql_result($result,$x,"projname")."</b></font><br>";
echo "<font style=\"font-size:12px\" color=\"#FFFFFF\" face=\"Century Gothic\">APMS ID:   </font><font style=\"font-size:11px\" color=\"#C0FFFF\" face=\"Century Gothic\"><b>".mysql_result($result,$x,"apmsid")."</b></font><br>";
echo "<font style=\"font-size:12px\" color=\"#FFFFFF\" face=\"Century Gothic\">Prefix/es:   </font><font style=\"font-size:11px\" color=\"#C0FFFF\" face=\"Century Gothic\"><b>".mysql_result($result,$x,"projprefix")."</b></font><br>";
echo "<font style=\"font-size:12px\" color=\"#FFFFFF\" face=\"Century Gothic\">Usage Type:   </font><font style=\"font-size:11px\" color=\"#C0FFFF\" face=\"Century Gothic\"><b>".mysql_result($result,$x,"usagetype")."</b></font><br>";
echo "<font style=\"font-size:12px\" color=\"#FFFFFF\" face=\"Century Gothic\">Rate:   </font><font style=\"font-size:11px\" color=\"#C0FFFF\" face=\"Century Gothic\"><b>".mysql_result($result,$x,"projrate")."</b></font><br>";
echo "<font style=\"font-size:12px\" color=\"#FFFFFF\" face=\"Century Gothic\">Offer Details:   </font><font style=\"font-size:11px\" color=\"#C0FFFF\" face=\"Century Gothic\"><b>".mysql_result($result,$x,"offerdetails")."</b></font><br><br>";
}
}else{
echo "<font style=\"font-size:12px\" color=\"#FFFFFF\" face=\"Century Gothic\">No results found ...</font>";
}
}else{
echo "<font style=\"font-size:12px\" color=\"#FFFFFF\" face=\"Century Gothic\">Problems encountered while processing the data ...</font>";
}
?>
我尝试重现这个问题,它似乎对我有效,使用Chrome作为客户端,在服务器上使用PHP5.2。但是我注意到您没有将内容长度标题作为标题发送,这可能是问题所在。尝试添加:
var post = "pStr=" + pStr.value;
xmlhttp.setRequestHeader("Content-length",post.length);
当然,在发布之前,您还必须对pStr.value进行URL编码。正如nickb早些时候所说,为什么不使用jquery之类的框架库呢?对于stackoverflow或其他编程站点来说,这可能是一个更好的问题。为什么要设置
pStr.value=“
,然后在xmlhttp.send(“pStr=“+pStr.value)
中尝试使用该值?还有,您为什么不使用jQuery这样的工具来实现这一点?可能会让它更容易一些…虽然我想这种方法更轻一点。哦,孩子。与问题无关,但非常非常重要:您有一个巨大的安全漏洞,可能导致整个数据库被破坏。阅读SQL注入。此外,使用级联样式表将使代码更具可读性,更不用说减少需要传输的数据量。
var post = "pStr=" + pStr.value;
xmlhttp.setRequestHeader("Content-length",post.length);