我有一个文件夹中有3个不同的PHP脚本。 email.php txt.php android.php
我将电子邮件和/或txts管理到各自的脚本,并使用http POST将数据发送到android脚本。
最初我只有电子邮件和txt,使用这一切都没问题
$data = '//data fields condensed into a single string obtained from email or txt';
$filename= "output.php";
$newFile= fopen($filename, 'w+');
fwrite($newFile, $data);
fclose($newFile);`没有问题,脚本可以打开/写入文件,如果没有退出,他们会创建它。该文件夹不可写入。
现在我有android.php脚本,并且最初它无法打开/创建output.php,直到我将整个文件夹设为可写。现在如果需要的话,它可以创建output.php。
现在的问题是,任何脚本都可以创建/写入output.php。但是,一旦文件由其中一个脚本创建,其他脚本就不能写入
即如果android脚本创建output.php,则电子邮件和txt脚本会返回错误
如果电子邮件或txt脚本创建output.php,那么android脚本返回错误
错误是'无法流fopen'或沿着这些线路。
Lorenzo(这里的用户)开始提到关于用户的一些事情(即,被管理的电子邮件将被视为与http POST命令不同的用户)。这些脚本创建了权限为644(不执行且只有所有者可以写入)的output.php,我无法手动将权限更改为777 - 尽管我希望获得允许脚本创建它的方式 - 所以我可以清空该文件夹定期备份的原因,而不必记得把它放回等...
我想我可以将3个脚本合并成一个(希望),但不会太喜欢。有没有人有任何其他想法?
谢谢
更新:由于我是新用户,无法'回答'我自己的问题 -
好吧,在所有回复的人的帮助下,我已经制定了一个解决方案:
电子邮件和txt脚本由用户'所有者'运行,而htmlPOST由用户'?'运行。
我必须制作文件夹chmod 777以便用户'?'上班
当每个脚本运行时,它会检查文件'output.php'。如果它不存在,那么在fclose之后,我添加了一个chmod 777 - 这样其他用户运行的脚本可以稍后打开/写入它。如果文件已经存在,那么我没有添加chmod,因为如果它是错误的用户,它会创建一个错误。
举个简单的例子:
$data = '//data fields condensed into a single string obtained from email or txt';
$filename= "output.php";
if (file_exists($filename)){
$newFile= fopen($filename, 'w+');
fwrite($newFile, $data);
fclose($newFile);
} else {
$newFile= fopen($filename, 'w+');
fwrite($newFile, $data);
fclose($newFile);
chmod($file, 0777);
}谢谢你的帮助!