$fileToAccess="userFiles/".$json[0]->userfor2.".json";
document.addEventListener('click', function(e)
{
xhttp=new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
window.alert(this.responseText);
}
}
xhttp.open("GET", "evaluate.php?q=[{\"id\": \""+e.target.id+"\"},{\"file\": \"<?php echo $fileToAccess;?>\"}]", true);
xhttp.send();
//alert(e.target.id)
});
和我的getData.php:
<?php
$file=$_REQUEST['q'];
$myfile=file_get_contents($file);
$json=json_decode($myfile);
echo $json[1];
?>
我尝试过的事情
在userFiles前加上./。
在/ userFiles之前添加_DIR__
但是我仍然得到错误无法打开流,即使我看到警报消息中的网址显示完全正常,我的文件也存在
权限:整个目录中的chmod -R 777
编辑:提醒讯息:
在getData.php中添加var_dump($file)
之后编辑2::
编辑3:删除所有空格后&#34;从$ file,我收到以下警告:
答案 0 :(得分:0)
在PHP中,尝试使用'realpath()'函数来实际显示PHP代码查找文件的位置。
另外,使用'var_dump()'来确保你的GET / POST变量名称是正确的,因为我很困惑,看到你在URL中传递了转义双引号。
答案 1 :(得分:0)
我是你,我会做那样的事情:
在$ fileToAccess上我只会存储文件名而不是所有路径
$fileToAccess=$json[0]->userfor2.".json";
document.addEventListener('click', function(e)
{
xhttp=new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
window.alert(this.responseText);
}
}
xhttp.open("GET", "evaluate.php?q=[{\"id\": \""+e.target.id+"\"},{\"file\": \"<?php echo $fileToAccess;?>\"}]", true);
xhttp.send();
//alert(e.target.id)
});
并在getData.php中设置文件的路径
<?php
$file=$_REQUEST['q'];
$myfile=file_get_contents(__DIR__.DS.userFiles.DS.$file);
$json=json_decode($myfile);
?>