file_put_contents阻止我的代码执行

时间:2015-08-20 17:17:32

标签: php server

我想将一些数据作为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'似乎没有执行。这是为什么?

1 个答案:

答案 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的权限,并更改代码以在其中写入文件。