2015-08-15 92 views
3

我只是在YouTube和其他网站的帮助下开始学习代码,而且我已经运行tino一个问题。这里是我的代码:警告:feof()期望参数1是资源,在第62行给出的/volume1/web/comment.php中的布尔值

<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”,那么它不会给我错误,但它不会保存我尝试发布的内容... 感谢您阅读和回复。

+0

了解错误是想告诉你什么.. – user5173426

+0

@HawasKaPujaari我认为这就是他提出这个问题的原因。 –

+0

警告:feof()期望参数1是资源,布尔在/volume1/web/comment.php中给出的行62 警告:fread()需要参数1为资源,布尔值在/ volume1/web/comment中给出。 php on line 63 这是我得到的两个错误,但是对于编码是新的,他们没有告诉我很多:/ – Katsu

回答

1

fopen如果文件无法打开,将返回布尔值(FALSE)。在尝试将它传递给feof之前,您应该检查$read是否为假。然后找出为什么你不能读取文件。

if ($read) { 
    ... 

由于权限或文件本身无法找到,您的文件可能无法读取。你指的是c.txt,但它与PHP在同一目录中吗?你可以通过getcwd找到PHP的目录。

echo getcwd() 

此外,您的表单处理程序只会进入写分支如果$_POST['post']有一个值,但该名称没有在您的形式使用(至少在所示的例子)。

+0

我已经将所有文件权限设置为777,所以不能这样做,以及idk如何检查它是否是假的。我只是按照教程,并在错误弹出后,确保代码是相同的。你可以在这里看到我在做什么:www.killthemall.co/test.php 当我在相信的文本框中键入内容时,该帖子也会有一个值。纠正我,如果我错了寿。 – Katsu

+0

我编辑了我的答案,以解决文件模式和文件所在的位置。至于“岗位”价值,我不知道。在您的示例中没有名为'post'的表单元素,并且您的页面会永久加载直到我停止它,并且我永远不会到达浏览器向我显示源的位置。 –

+0

感谢您的解释。来源已经在主要问题中给出。这就是所有:/ ALSO是啊,我不知道为什么页面一直做下去。也许停止刷新,然后检查源。 我要检查$ read是否为真。 – Katsu

0

谢谢丹,问题出在提交命令。一个提交,另一个发布,所以它不明白我想要做什么。 PS:对不起,迟交回复; _;

相关问题