PHP fopen () 函数无法打开,权限被拒绝


PHP fopen () function failed to open and permission denied

我使用 XAMP 1.7.3在 Macbook Pro 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 有同样的问题,有些建议主文件的权限问题,并且由于每次我尝试更新 PHP 文件时,我都会被要求输入我的管理员密码, 所以我假设 XAMP 主文件也受到保护

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

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

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

First

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

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

第二

如果第一次不起作用,那么我认为您应该更改htdocs文件夹位置,因为当它在应用程序文件夹中时,它可能无法正常工作,因为应用程序文件夹可能以某种方式受到系统的保护。

编辑 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