我想将一些数据作为GET请求发送到我的php页面(submit.php
)并将其保存在本地文件中。我有:
$loc = 'data.txt';
if(isset($_GET["data"])) {
echo 'set';
file_put_contents($loc, $_GET["data"], FILE_APPEND);
}
echo 'foo';
但是当我访问submit.php?data=bar
时,data.txt
没有任何反应;此外,echo 'foo'
似乎没有执行。这是为什么?
答案 0 :(得分:2)
echo 'foo'
未执行,因为file_put_contents()
遇到错误并且执行停止。
将error_reporting(E_ALL & ~E_NOTICES); ini_set('display_errors', '1');
放在脚本前面,让PHP在屏幕上显示错误。
通过这种方式,您可以发现,运行PHP代码的过程(可能是Web服务器)无权在您存储代码的目录中进行写入。
将$loc
更改为'/tmp/data.txt'
,它会起作用。
或者,更好的是,创建一个新目录,为每个人设置rwx
的权限,并更改代码以在其中写入文件。