PHP Невозможно выполнить файловые операции (fopen, fwrite, fclose)

Я столкнулся с проблемой. Вот как выглядит мой скрипт:

$file = fopen("logs/log.php", "r+") or die("Kan bestand (1) niet openen bradda!");
$content = fread($file, filesize("logs/log.php"));
fclose($file);
$filee = fopen("logs/log.php", "r+") or die("Kan bestand (2) niet openen bradda!");
$newcontent = $content.'<br /><b>'.$userRow['userId'].'   -   '.$userRow['userName'].'     -     '.$search;
fwrite($filee, $newcontent) or die("Kan bestand (3) niet openen bradda!");
fclose($filee);

Моя цель - создать журнал. Каждый раз, когда пользователь ищет ключевое слово, он должен быть зарегистрирован в файле «log.php». Я работаю на VPS (сервере Windows), и, как я понял от другого человека с опытом работы с PHP, он сказал мне, что каталог/путь должен быть другим. Потому что это не веб-хостинг. Если это точно так, я не знаю. Но я надеюсь, что вы, ребята, можете помочь мне с этой проблемой.


person ndev    schedule 07.07.2017    source источник
comment
Разве вы не должны регистрироваться в таблице базы данных?   -  person Terry    schedule 08.07.2017
comment
В чем проблема?   -  person gview    schedule 08.07.2017
comment
@ Терри, что, если ошибка связана с базой данных? Регистрация в файл, вероятно, немного более надежна.   -  person ADyson    schedule 08.07.2017


Ответы (1)


Выполните следующие шаги: 1) Создайте папку журнала в корневом каталоге вашего сайта. 2) Проверьте разрешение на чтение/запись папки журнала. (требуется разрешение 777) 3) Используйте + вместо r+. Потому что в r+ указатель файла начинается с начала файла, а в a+ существующие данные в файле сохраняются. Указатель файла начинается в конце файла. Создает новый файл, если файл не существует.

person Avinash Kumar Singh    schedule 08.07.2017
comment
Я бы не стал размещать файл журнала в каталоге веб-сайта — его смогут прочитать все, кто посещает веб-сайт, если только вы не будете очень осторожны. - person ADyson; 08.07.2017
comment
Тогда мой совет: создайте виртуальный каталог, который будет доступен из apache (из php). - person Avinash Kumar Singh; 08.07.2017
comment
вы не хотите, чтобы apache мог его видеть (это было моей первоначальной точкой зрения), только PHP должен иметь к нему доступ. - person ADyson; 08.07.2017