php讨论区没有发表评论

时间:2014-10-10 18:22:55

标签: php

我试图使用php制作讨论区。使用代码,所有用户名,数据和&时间和注释存储在代码中指定的data.txt文件中;但是,我无法获得data.txt中的内容以显示在页面上。我想我的代码中的echo()部分可能有问题,或者分隔符搞砸了。

<?php
   $filename = "users.txt";
   $delim="*@*";

if (isset($_POST['submit'])){
    if (!($fp = fopen($filename, 'a+'))) { 
        echo("Error: Could not open $filename for writing."); 
} 
    else{
        $thePost=$_POST['post'];
        $username=$_POST['uname'];
        date_default_timezone_set('America/New_York'); 
        $string=(date('c')."\n".$username."\n".$thePost."\n*@*"); 
        fwrite($fp, $string); 
        $accounts = explode("\n", $theData);
        fclose($fp);
    } 
}

    ?>



<html>
    <body>
<h1> Discuss </h1> </br> </br>

<form method="post" action="discussion.php">
    Name: <input name="uname" type="text" /> </br>
    <textarea name="post" rows=4 cols=60>Add comment</textarea><br/>
    <input type="submit" name="submit" value="Post Comment"/>
</form>
<?php

if (!($fp = fopen($filename, 'a+'))) { 
        echo("Error: Could not open $filename for writing."); 
} 
    else{
        fread($fp, filesize($filename));
        $accounts = explode("*@*", $theData);
        fclose($fp);
        for ($i = 0; $i <count($accounts); $i++){
                echo($i);
                echo($accounts[$i]);
            } 
    }
    ?>
    </body>
</html>

我不确定我做错了什么/为什么用户/数据/时间/评论不会在页面上发布任何内容。谢谢!

1 个答案:

答案 0 :(得分:0)

这对你有用。最后在$string处插入了一个额外的换行符,否则下一行将附加到@的末尾。之后,只需在循环中的换行符上爆炸。您可能遇到的问题是帖子是否包含新行。您可能希望使用可能不会在帖子中出现的不同分隔符。将它放入数据库可能是一个更好的主意,但我不确定你究竟在做什么。但这应该可以为您提供所需的信息。

<?php
   $filename = "users.txt";
   $delim="*@*";

if (isset($_POST['submit'])){
    if (!($fp = fopen($filename, 'a+'))) { 
        echo("Error: Could not open $filename for writing."); 
} 
    else{
        $thePost=$_POST['post'];
        $username=$_POST['uname'];
        date_default_timezone_set('America/New_York'); 
        $string=(date('c')."\n".$username."\n".$thePost."\n*@*\n"); 
        fwrite($fp, $string); 
        $accounts = explode("\n", $theData);
        fclose($fp);
    } 
}

    ?>



<html>
    <body>
<h1> Discuss </h1> </br> </br>

<form method="post" action="discussion.php">
    Name: <input name="uname" type="text" /> </br>
    <textarea name="post" rows=4 cols=60>Add comment</textarea><br/>
    <input type="submit" name="submit" value="Post Comment"/>
</form>
<?php

if (!($fp = fopen($filename, 'a+'))) { 
        echo("Error: Could not open $filename for writing."); 
} 
    else{
        fread($fp, filesize($filename));
        $accounts = explode("*@*", $theData);
        fclose($fp);
        for ($i = 0; $i <count($accounts); $i++){
                $items = explode("\n", $accounts[$i]);
                $date = $items[0];
                $user = $items[1];
                $post = $items[2];
            } 
    }
    ?>
    </body>
</html>