我正在尝试从查询字符串中获取变量并将其写入文本文件。 我试过这样的:
<?php
$content=( $_GET['var'] );
echo $content;
$file = fopen("etlLOG.txt","w+");
echo fwrite($file,$content);
fclose($file);
?>
我收到以下错误:
警告:fopen(etlLOG.txt)[function.fopen]:无法打开流:第8行的E:\ Users \ george \ listener.php中的权限被拒绝
警告:fwrite():提供的参数不是第9行E:\ Users \ george \ listener.php中的有效流资源
警告:fclose():提供的参数不是第10行E:\ Users \ george \ listener.php中的有效流资源
答案 0 :(得分:2)
您可能需要以管理员身份更改权限。在Mac上打开终端,然后打开etlLOG.txt所在的目录。然后输入:
sudo chmod 777 etlLOG.txt
系统可能会提示您输入密码。此外,它可能是不允许完全访问的目录。
或强>
<强> PHP 强>
chmod :尝试将指定文件的模式更改为模式中给定的模式。
答案 1 :(得分:1)
好吧,Web服务器似乎无法访问该文件。所以使用ftp fopen
提供了正确的凭据和路径,最后我设法访问并编辑了文件
答案 2 :(得分:0)
如果您在Windows上运行WAMP
1)以管理员身份登录
2)安装wamp
3)从microsoft下载subinacl.exe:
4)授予常规用户帐户管理WAMP服务的权限:(subinacl.exe位于C:\ Program Files(x86)\ Windows资源工具包\ Tools)
subinacl / SERVICE \ MachineName \ wampapache /GRANT=domainname.com\username=F subinacl / SERVICE \ MachineName \ wampmysql /GRANT=domainname.com\username=F
5)注销并以用户身份重新登录。他们现在应该能够启动WAMP任务栏应用程序并控制WAMP服务。
答案 3 :(得分:0)
我的猜测是PHP正在尝试在'C:\ WINDOWS'创建文件,因此解决方案不是在那里设置权限。
我建议您使用特定位置,例如:在与php脚本相同的位置创建一个文件夹并使用它来创建文件:
$filePath = dirname(_FILE_) . "/temp_vars/etILOG.txt";
$file = fopen($filePath ,"w+");
亲切的问候,
答案 4 :(得分:0)
您正在运行的代码正在尝试在与PHP脚本相同的文件夹中创建etlLOG.txt。您需要在E:\ Users \ george文件夹中为您的IUSER_帐户授予完全权限。
如果您不知道如何浏览以下链接
http://technet.microsoft.com/en-us/library/bb727008.aspx