Я получаю следующее предупреждение:
Предупреждение: fopen(Uploaded_Files/dataFile1.txt): не удалось открыть поток: Отказано в доступе в /opt/lampp/htdocs/PHP_Course_Practice/Superglobals/data_upload.php в строке 17
- Я использую XAMPP для 7.4.8-0.
- Использование моего MacBook в качестве локального хоста для изучения PHP. Я совсем новичок в кодировании.
- I've tried:
- writing the whole Path to the file dataFile1.txt in fopen() but it's not solving the problem
- Проверено в 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 lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<?php
if (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>