我使用AJAX在PHP中调用函数。它可以很好地返回我的数据,但是它一直将函数名放在returnText的开头。
我的Javascript/ajax
function getfirst() {
var myphp=document.getElementById('myphp').value ;
http=createRequestObject();
url= tablename + '.php?filename=' + tablename;
url= url + '&function=movefirst';
url= url + '&seekindex=CustomerKey';
url= url + '&maxdata=' + maxdata;
http.open('GET',url,false);
http.send(null);
document.getElementById('myreturn').value;
}
我的PHP
<?php include '../../tophat.php';
$_REQUEST['function']();
function movefirst(){
$filename=$_REQUEST['filename'];
$seekindex=$_REQUEST['seekindex'];
$maxdata=$_REQUEST['maxdata'];
opendbdata();
$query="SELECT * FROM ". $filename . " ORDER BY " . $seekindex;
$result=mysql_query($query);
$returnkey='';
for ($i=0; $i<=$maxdata-1; $i++) {
$returnkey = $returnkey . mysql_result($result,0,$i) . "~";
}
echo $returnkey;
}
我正在我的客户数据库中查找第一个客户,它返回记录,但在returnText的开头是函数的名称。这是.returnText的开头:
"movefirst4SEASONS1~4 Seasons Pottery~336 Hammond Dr NE~"
我以前从没遇到过这个问题。提前谢谢你的帮助。
最佳答案
注意你
允许用户执行此作用域中可用的任何函数(类似于dropDatabase()
或rebootServer()
),因为您正在调用$_REQUEST['function']
允许用户利用SQL Injection对数据库进行任何更改或读取机密信息!
关于php - http.responseText返回名为PHP的函数的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11552172/