我使用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/

10-11 22:36
查看更多