fopen — Предупреждение: feof () ожидает, что параметр 1 будет ресурсом, логическое значение указано в /volume1/web/comment.php в строке 62

Я только начинаю изучать код с помощью YouTube и других сайтов, и я запустил tino проблему. Вот мой код:

<form action="" method="post" id="c">
<label> Name: <br><input type="text" name="name" size="36"></label><br></br>
<label> Message: <br><textarea cols="35" rows="5" name="mes"></textarea></label><br></br>
<input type="submit" name="submit" value="Submit" class="texty" >
</form>

<?php
$post = $_POST["post"];
$name = $_POST["name"];
$text = $_POST["mes"];

if ($post) {

#WRITE DOWN COMMENTS#

$write = fopen("c.txt", "a+");
fwrite($write, "<u><b> $name</b></u><br>$text<br></br>");
fclose($write);

#DISPLAY COMMENTS#

$read = fopen("c.txt", "r+t");
echo "All comments:<br>";

while (!feof($read)) {   #this line does the error#
echo fread($read, 1024);
}
fclose($read);
}
else{
#DISPLAY COMMENTS#

$read = fopen("c.txt", "r+t");
echo "All comments:<br>";

while (!feof($read)) {
echo fread($read, 1024);
}
fclose($read);
}
?>

Итак, у меня есть 2 файла: один, в который вы вводите свой комментарий и публикуете его, и другой файл .txt, в который вставляется то, что вы набрали, а затем возвращается на страницу.
Я думаю, что что-то может быть не так с разрешением файлов, потому что, если я помещу это только в «r», то это не выдаст мне ошибку, но тогда не сохранит то, что я пытаюсь опубликовать …
Спасибо за чтение и ответ.

3

Решение

fopen вернет логическое (FALSE) если файл не может быть открыт. Вы должны проверить это $read не ложно, прежде чем пытаться передать его feof, А потом выясните, почему вы не можете прочитать файл.

if ($read) {
...

Ваш файл может быть нечитаемым из-за разрешений или если сам файл не может быть найден. Вы имеете в виду c.txt, но находится ли он в том же каталоге, в котором находится PHP? Вы можете узнать, в каком каталоге находится PHP getcwd,

echo getcwd()

Кроме того, ваш обработчик формы будет входить в ветвь записи, только если $_POST['post'] имеет значение, но это имя не используется в вашей форме (по крайней мере, в показанном примере).

1

Другие решения

Спасибо Дэн, Проблема была в команде отправки. Один был отправлен, а другой пост, так что он не понимал, что я пытался сделать.
PS: Извините за поздний ответ; _;

0

По вопросам рекламы [email protected]