0

我正在尝试从查询字符串中获取一个变量并将其写入文本文件。我试过这样:

<?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 中的有效流资源

4

5 回答 5

2

您可能需要以管理员身份更改权限。在 Mac 上打开终端,然后打开 etlLOG.txt 所在的目录。然后键入:

sudo chmod 777 etlLOG.txt

系统可能会提示您输入密码。此外,它可能是不允许完全访问的目录。

或者

PHP

chmod:尝试将指定文件的模式更改为 mode 中给定的模式。

修改

于 2013-09-27T08:58:47.790 回答
1

好吧,Web 服务器似乎无权访问该文件。所以使用 ftpfopen提供了正确的凭据和路径,最后我确实设法访问和编辑文件

于 2013-09-27T13:36:21.083 回答
0

如果您在 Windows 上运行 WAMP

1) 以管理员身份登录

2)安装wamp

3) 从微软下载 subinacl.exe:

4) 授予普通用户帐户管理 WAMP 服务的权限:(subinacl.exe 在 C:\Program Files (x86)\Windows Resource Kits\Tools 中)

subinacl /SERVICE \MachineName\wampapache /GRANT=domainname.com\username=F subinacl /SERVICE \MachineName\wampmysql /GRANT=domainname.com\username=F

5)注销并以用户身份重新登录。他们现在应该能够启动 WAMP 任务栏应用程序并控制 WAMP 服务。

于 2013-09-27T09:05:21.883 回答
0

我的猜测是 PHP 试图在 'C:\WINDOWS' 处创建文件,因此解决方案不会是在那里设置权限。

我建议您使用特定位置,例如:在与您的 php 脚本相同的位置创建一个文件夹并使用它来创建文件:

$filePath =  dirname(_FILE_) . "/temp_vars/etILOG.txt";
$file = fopen($filePath ,"w+");

亲切的问候,

于 2013-09-27T09:10:41.083 回答
0

您正在运行的代码试图在与您的 PHP 脚本相同的文件夹中创建 etlLOG.txt。您需要在 E:\Users\george 文件夹中为您的 IUSER_ 帐户授予完全权限。

如果您不知道如何浏览以下链接

http://technet.microsoft.com/en-us/library/bb727008.aspx

http://www.wikihow.com/Change-File-Permissions-on-Windows-7

如何在特定文件夹上设置 777 权限?

于 2013-09-27T09:36:50.323 回答