为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 中的 fopen() 未创建或写入 txt 文件

PHP 中的 fopen() 未创建或写入 txt 文件

PHP
大话西游666 2023-10-15 15:12:12
我收到以下警告:警告:fopen(Uploaded_Files/dataFile1.txt):无法打开流:第 17 行 /opt/lampp/htdocs/PHP_Course_Practice/Superglobals/data_upload.php 中的权限被拒绝我正在使用 XAMPP 7.4.8-0使用我的 MacBook 作为本地主机来学习 PHP。我对编码很陌生。我试过了:在 fopen() 中写入文件 dataFile1.txt 的整个路径,但这并不能解决问题检查 PHP.ini 中的allow_url_fopen 已打开在 PHP 文件顶部包含整个路径,但也没有解决问题也尝试过chown -R www-data:www-data folder(其中文件夹是文件夹的完整路径)并且终端说chown: www-data: illegal group name也尝试过sudo dseditgroup -o edit -a daemon -t user wheel(首先到 Superglobals 文件夹,然后到 Xampp 的根文件夹)fopen() 尝试访问并写入文件的完整路径是: /opt/lampp/htdocs/PHP_Course_Practice/Superglobals/Uploaded_Files/dataFile1.txt我不热衷于使用 777,因为我在各种文章中读到它使用起来不安全。代码是:<?php$document_root = $_SERVER["DOCUMENT_ROOT"];$fileRoot = $document_root . "/PHP_Course_Practice/Superglobals/Uploaded_Files/dataFile1.txt";echo "Root: $document_root";include($document_root . "/PHP_Course_Practice/Superglobals/Uploaded_Files/dataFile1.txt");?><!DOCTYPE html><html dir="ltr">  <head>    <meta charset="utf-8">    <title></title>  </head>  <body><?phpif (isset($_POST["submit"])) {  $dataFile1 = fopen("Uploaded_Files/dataFile1.txt", "w");  $dataFile1Txt = "My age is " . $_POST["age"] . ".";  fwrite($dataFile1, $dataFile1Txt);  echo $dataFile1;  fclose($dataFile1);}?><form action="data_upload.php" method="post">  <input type="text" name="age">  <input type="submit" name="submit"></form>  </body></html>
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您应该尝试检查要打开的文件或目录的权限。之后,您可以向该目录添加递归读写权限,如下所示

$ chmod -R 770 /path/toyour/directory


查看完整回答
反对 回复 2023-10-15
?
千万里不及你

TA贡献1784条经验 获得超9个赞

检查网络用户。

<?php
echo exec("whoami");

并将用户添加到您的组中。

sudo usermod -a -G <groupName> <userName>

最后,检查文件的权限设置。


查看完整回答
反对 回复 2023-10-15
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

我解决这个问题的方法是下载并安装虚拟机版本的 XAMPP。看来 VM 版本的 XAMPP (LAMPP) 不适合本地主机上的权限,除非您热衷于非安全打开 777。



查看完整回答
反对 回复 2023-10-15
  • 3 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信