A few days ago i had to build a simple comment form. First i thought about MYSQL etc, but this all seems to be too complicated. So i came up with a simple solution based on jSon and a TXT file.
So that’s how it cooks:
1. Load the text file with the comments and convert it to an array with json_decode
1
2
3
4
5
/* get comments from file */$commentsText=file_get_contents('comments.txt');/* create array list from comments */$commentsList=json_decode($commentsText,true);
2. Check if a new comment was posted and save to file when valid.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* check if new comment is posted and minimum 3 characters are set */if(!empty($_POST['comment'])&&strlen($sComment)>3){/* get posted comment and remove all HTML */$sComment=strip_tags($_POST['comment']);/* add comment, client IP and date to array */$commentsList['comments'][]=array('text'=>$sComment,'ip'=>$_SERVER['REMOTE_ADDR'],'date'=>time());/* convert comments to string */$commentsText=json_encode($commentsList);/* save comment to file */file_put_contents($commentsFile,$commentsText);}
3. Then we can loop the comment list and create HTML for the output
1
2
3
4
5
6
7
8
9
/* create html list */$commentsHTML="<ul>";/* loop all comments */foreach($commentsList['comments']as$commentItem){// add comment to html list$commentsHTML.="<li>".$commentItem['text']."</li>";}/* close html comments list */$commentsHTML.="</ul>";
4. Then we add the HTML form and the list with comments
I know simple but i thought to share it, you can download the full example including sorting and some more validation stuff, or check out the example page .