【发布时间】:2014-02-16 08:05:18
【问题描述】:
好的,现在这对我来说完全令人困惑,我无法弄清楚为什么这个脚本不起作用基本上我正在尝试将一行数据写入 php 中的 .txt 文件
这是脚本中重要的部分:
set_include_path('/etc/apache2/rewrite/');
if($_GET['type']=="14"){ //video is documentary
$file = '/etc/apache2/rewrite/Documentaries.txt';
$line= clean_url($content[0]['title']) . " " . $content[0]['content_id'] ."\n";
file_put_contents($file, $line, FILE_APPEND);
echo "inseted into documentaries <br>" . $line;
}else if ($_GET['type']=="17"){//video is a talk
$file = '/etc/apache2/rewrite/Talks.txt';
$line= clean_url($content[0]['title']) . " " . $content[0]['content_id'] ."\n";
file_put_contents($file, $line, FILE_APPEND);
echo "inseted into talks";
}else if($_GET['type']=="15"){//video is debate
$file = '/etc/apache2/rewrite/Debates.txt';
$line= clean_url($content[0]['title']) . " " . $content[0]['content_id'] ."\n";
file_put_contents($file, $line, FILE_APPEND);
echo "inseted into debates";
}
请注意,在此块之后,我会回显$line,就像这样
inside-nature-s-giants-the-leatherback-turtle 13443
if 语句中的 echo 也被回显,但是在任何文件中都没有修改任何内容,原因是我似乎无法弄清楚我已授予脚本写入和执行权限并且似乎仍然无法使其正常工作.. 我不确定发生了什么因为我在其他脚本中使用类似的逻辑没有问题任何帮助将不胜感激,因为我已经发誓我的终端有点合我的胃口
谢谢,
布伦丹
*更新 * 感谢@SyntaxLAMP 提醒我检查错误日志,我没有正确的文件权限
好的,这里是php文件的权限
-rwxrwxrwx 1 root root 9202 Jan 25 07:48 update_untagged.php
以及我尝试写入的三个文件的权限
-rw-r--r-- 1 root root 7 Jan 25 05:05 Debates.txt
-rw-r--r-- 1 root root 110691 Jan 25 07:16 Documentaries.txt
-rw-r--r-- 1 root root 45747 Jan 25 05:05 Talks.txt
他们都有相同的权限,所以我不明白为什么这仍然不起作用
【问题讨论】:
-
您是否遇到任何错误?您是否打开了错误日志记录?
-
没有,我可以看到虽然这是通过 html 表单...甚至没想过要检查日志... brb
-
好吧,是的,当我试图打开文件时,我得到一个权限被拒绝的错误......有没有办法以 root 身份运行从 html 访问的 php 脚本?因为脚本已经有了 -rwxrwxrwx
-
您可能需要授予运行 PHP 脚本的任何用户访问文件的权限,而不仅仅是脚本。
-
@SyntaxLAMP 只是在更新检查更新是否应该文件已经没有这些权限?如果不是,我怎么能授予他们
标签: php unix file-io file-permissions