当前位置: 首页 > 知识库问答 >
问题:

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

国仰岳
2023-03-14

我在Macbook pro osx 10.9 Firefox浏览器上使用XAMP 1.7.3

基本上,我正在尝试编写一个代码,要求用户输入一些信息,然后使用以下方法将信息存储在.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 中给出

警告:f↑()期望参数1是资源,布尔值在第32行的 /Applications/XAMPP/xamppfiles/htdocs/UserInfoAhmed.php中给出

警告:fwrite()要求参数1为第33行的/Applications/XAMPP/xamppfiles/htdocs/userinfoahmed . PHP中给定的资源、布尔值

警告:fwrite()要求参数1为资源,布尔值在/Applications/XAMPP/xampfiles/htdocs/UserInfoAhmed中给出。php第34行

警告: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文件,当我在这个网站上搜索时,几个人有同样的问题,一些人认为主文件有权限问题,因为每次我试图更新php文件时,我都被要求输入我的管理员密码,所以我假设XAMP主文件也受到保护

我将文件选项更改为读取

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

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

共有1个答案

曹德明
2023-03-14

第一

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

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

第二

若第一个不起作用,那个么我认为您应该更改htdocs文件夹的位置,因为当它位于Applications文件夹中时,它可能无法正常工作,因为Applications文件夹可能受到系统的某种保护。

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

确保在Documents文件夹下创建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
 类似资料:
  • 我是PHP新手。我计划根据用户输入创建文件夹、子文件夹。 文件夹和子文件夹已成功创建。 最后我尝试创建一个文件,它显示以下错误。 fopen(upload/llocalhost/hrms):无法打开流:在C:\xamp\htdocs\ssspider\index中的权限被拒绝。php第205行 我的代码是: 请帮我找出我的问题? 编辑:谢谢。我出错了。以前我没有提到文件名。现在工作正常。谢谢

  • 我想上传一张图片。每次我试图上传图片时,我都会收到下面的错误信息。 我已经设置了读取权限 警告:move_uploaded_file(上载/1000020170620022532img3.png):无法打开流: /Applications/XAMPP/xamppfiles/htdocs/social-network-master/profile.php第41行的权限被拒绝 警告:move_uplo

  • 更新 结果发现我调用open和close FileOutputStream的频率太高了,这会在某个时候抛出FileNotFoundException。听起来更像是线程问题。

  • 嘿,我总是出错 警告:move_uploaded_file(路径):无法打开流:/Users/Shared/xampp htdocs/php reports/upload中的权限被拒绝。php第27行 我的index.php密码是 我的php代码是 我还将目录设置为 chmod 777

  • 问题内容: 当尝试在CentOS上使用Apache 2.2和PHP 5.3配置上传目录时,我一直收到此错误。 在php.ini中: 在httpd.conf中: CentOS目录权限: 无论我做什么,在上传文件时,都会不断从PHP收到此错误: 警告:move_uploaded_file(images / robot.jpg):无法打开流:在第78行的/var/www/html/mysite/proc

  • 我正在玩一个工作Laravel 4安装和移动一切到一个子文件夹。然后我决定不这样做,我把它全部移回来(全部通过命令行): 然后呢 现在,该网站抛出以下错误: 以下是完整错误的截图: http://i.imgur.com/8deGG97.png 我已经尝试将/storage文件夹的权限设置为777,但没有成功。