2014-10-10 232 views
0

我正在嘗試使用php做一個討論區。通過代碼,所有用戶名,數據&時間和註釋都存儲在代碼中指定的data.txt文件中;但是,我無法獲取data.txt中的內容以顯示在頁面上。我想我可能會讓echo()部分的代碼錯誤或者分隔符被搞砸了。php討論區沒有發表評論

<?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> 

我不確定我在做什麼錯誤/爲什麼用戶/數據/時間/評論不會在頁面上發佈任何內容。謝謝!

+0

你可以發佈data.txt內容的示例嗎? – slapyo 2014-10-10 18:24:36

+0

@slapyo 2014-10-11T15:30:33-04:00 bob 這是我的意見 * @ – alexdis 2014-10-11 19:31:24

+0

你只想要一行文件,或者你想單個作品(日期,名稱,後)? – slapyo 2014-10-13 17:45:46

回答

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>