0

我在 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 中给出

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

我将文件选项更改为由所有用户以及 XAMP 主文件夹中的所有文件夹读取和写入。但是我仍然被要求输入密码以保存在写入此代码的 php 文件中的任何更改,因此我想我仍然得到相同的结果:fopen(registration.txt) [function.fopen]: failed to open stream: Permission拒绝...

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

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

4

1 回答 1

1

第一的

尝试通过控制台设置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
于 2013-10-29T08:23:54.023 回答