PHP fopen()函数打开失败,权限被拒绝

PHP fopen()函数打开失败,权限被拒绝,php,Php,Am使用XAMP 1.7.3 在MacBookPro osx 10.9上 火狐浏览器 基本上,我正在尝试编写一个代码,要求用户输入一些信息,然后使用以下命令将信息存储在.txt文件中: $txtfile="registration.txt"; $handle=fopen($txtfile,'a'); 但我一直收到这个错误消息: 警告:fopen(registration.txt)[function.fopen]:无法打开流:第30行的/Applications/XAMPP/xamppfil

Am使用XAMP 1.7.3 在MacBookPro osx 10.9上 火狐浏览器

基本上,我正在尝试编写一个代码,要求用户输入一些信息,然后使用以下命令将信息存储在.txt文件中:

 $txtfile="registration.txt";
 $handle=fopen($txtfile,'a');
但我一直收到这个错误消息:

警告:fopen(registration.txt)[function.fopen]:无法打开流:第30行的/Applications/XAMPP/xamppfiles/htdocs/UserInfoAhmed.php中的权限被拒绝

警告:fwrite()希望参数1是第31行的/Applications/XAMPP/xamppfiles/htdocs/UserInfoAhmed.php中给定的资源布尔值

警告:fwrite()希望参数1是第32行的/Applications/XAMPP/xamppfiles/htdocs/UserInfoAhmed.php中给定的资源布尔值

警告:fwrite()希望参数1是第33行的/Applications/XAMPP/xamppfiles/htdocs/UserInfoAhmed.php中给定的资源布尔值

警告:fwrite()希望参数1是第34行的/Applications/XAMPP/xamppfiles/htdocs/UserInfoAhmed.php中给定的资源布尔值

警告:fwrite()希望参数1是第35行的/Applications/XAMPP/xamppfiles/htdocs/UserInfoAhmed.php中给定的资源布尔值

完整代码为:

<html>
<head>
    <title>User Informations</title>
</head>

<body>
<form method="post" action="">
    Name    : <input type="text" name="name"/> <br>
    Age     : <input type="text" name="age"/> <br>
    City    : <input type="text" name="city"/> <br>
    Password: <input type="password" name="pswrd1"/> <br>
    Password: <input type="password" name="pswrd2"/> <br>
    <input type="submit" name="submit" value"send"/>
    <form/>
    <?php

    if(isset($_POST['submit']))
    {

        $name=$_POST["name"];
        $age=$_POST["age"];
        $city=$_POST["city"];
        $pswrd1=$_POST["pswrd1"];
        $pswrd2=$_POST["pswrd2"];

        if($pswrd1 == $pswrd2){
            if($city==dubai){
                if($age>18){
                    $txtfile="registration.txt";
                    $handle=fopen($txtfile,'a');
                    fwrite($handle, $name);
                    fwrite($handle, $age);
                    fwrite($handle, $city);
                    fwrite($handle, $pswrd1);
                    fwrite($handle,$pswrd2);                    
                }
                else echo "age must be > 18";
            }
            else echo "city must be dubai";
        }
        else echo "password must identical";
        echo "<br>";



    }

    ?>
</body>

用户信息
名称:
年龄:
城市:
密码:
密码:

首先,我理解了第一条错误消息,无法访问/创建.txt文件,当我在这个网站上搜索时,有几个ppl出现了相同的问题,一些ppl建议主文件存在权限问题,因为每次我尝试更新php文件时,我都会被要求输入我的管理员密码,所以我假设XAMP主文件也受保护

我将文件选项更改为由所有用户以及主XAMP文件夹中的所有文件夹读写。但是我仍然被要求输入密码来保存php文件中的任何更改,我正在编写此代码,因此我猜我仍然得到相同的密码: fopen(registration.txt)[function.fopen]:无法打开流:在中的权限被拒绝

那么我该怎么解决这个问题呢? 我还想知道其余的错误消息是否与主要问题有关

总而言之,至少有人能告诉我我的代码中是否有错误吗?

首先

尝试通过控制台设置registration.txt权限:

sudo chmod 0777 /Applications/XAMPP/xamppfiles/htdocs/registration.txt

若第一个不起作用,那个么我认为你们应该改变你们的htdocs文件夹的位置,因为当它在Applications文件夹中时,它可能不能正常工作,因为Applications文件夹可能会受到系统的保护

编辑XAMPP apache httpd.conf并将DocumentRoot设置为/users/USERNAME/Documents/htdocs

确保在文档文件夹下创建htdocs文件夹

然后在控制台中更改文件夹权限:

sudo chmod 0777 /users/USERNAME/Documents/htdocs
然后尝试在文件夹中放置一些随机文件,并尝试在浏览器中打开它

http://localhost/randomfile.php
它应该会起作用。如果出现内部服务器错误(500),请在httpd.conf中注释掉以下行:

LoadModule hfs_apple_module libexec/apache2/mod_hfs_apple.so

您是否检查了对文件夹/Applications/XAMPP/xamppfiles/htdocs/的权限?是的,我检查了对每个文件夹的权限,并将其更改为读写。将权限更改为777。我尝试了sudo chmod 777/Applications/XAMPP/xamppfiles/htdocs/registration.txt,但结果相同?嗯,我尝试了你的第一个建议:通过控制台设置registration.txt权限,但没有效果,所以我尝试了你的第二个建议并遵循了你的步骤,每次我尝试查看Documents下新htdocs文件夹中的.php文件时,它都不会显示出来,实际上,它仍然会显示xamp文件夹?0777中原始htdocs中的文件。读、写和执行权限?不,请不要。