For this assignment you need to design and implement a social networking component that allows users to comment and denote when they have visited your web site. Such functionality is fundamental to many social networking sites such as Facebook. As a component of a social networking site, there is potential to incorporate this into many social sites while adding to it to create an extensive feature set. You will develop two versions of this component, one that uses a text file (for the first submission point), and one that uses a database table (for the final submission point). Both versions will be submitted as part of your final submission.

Design Requirements

Create an application that allows users to comment on a static posting that you provide. In one version, the user's name, contact information (e-mail address), and comment will be saved to a single text file. In the other version, the same information will be saved to a database table.

Include functionality that allows anyone to view who has visited the site and left comments. While the comments will automatically be displayed by date (as this is how they are saved to the text file and database table), allow the viewer to sort comments in ascending and descending order (by name) to more easily find a comment. Do not allow users to comment more than once to the posting. In doing so, prevent duplicates from being saved to the text file and/or database table. You will want to plan how to save data to the text file and database table for easy retrieval.

To get started, create an XHTML document that will serve as a main page where you can enter your information and comments. This page should also provide the ability to get to the other existing comments on the posting. Upon providing a comment, you should acknowledge the addition of the entry by showing what values were added. You should also allow a different user to add an entry.

Below is an example of the main page and acknowledgement output you should have before formatting: see image. see image.

If the user has already commented on the posting, you should let them know that you don't allow more than one comment by the same user. Below is an example of the notification page output you should have before formatting for duplicate entries: see image.

Below is an example of the posting comments page output you should have before formatting: see image.

When the user views the comments on the posting, they should have the ability to sort the results in either ascending or descending order. For the text file version, this should be done using an indexed array that re-indexes depending on the sort order chosen. For the database version, you should use SQL to do the sorting. No matter where someone is in your web site, you should always provide a way to return to the main page where a new user could add a comment to the posting.

In addition, you should allow a user to specify the index number of any user's comment information they wish to delete. This functionality should be implemented in both text file and database versions. While this feature would traditionally require administrator authentication, you can keep it simple and allow any user to delete any existing entry. Upon deleting an entry, you should re-output the posting comment page showing the remaining entries renumbered.

Notice that on all applicable pages while the email address does not show, the name is hypertext linked to their email address using a XHTML mailto: link. As shown in the comments page example, selecting the user name hyperlink should provide an email link to the email address of commenter. Constants should be used for values that do not change, and variables for values that change during the course of execution. You should include Last Modified Date information on your pages. This should be provided dynamically by using the built-in date()function within the getlastmod()function.

Your application should be laid out in the Lab Content area of your web site. When laying out your web page, you should retain the common navigation and structural components (header and footer) of your website even though not shown in the image. This will require you to incorporate the SSI file references in this lab assignment as you did on previous the lab assignment. SSI files should not be moved but rather you should provide the path to their original file location. The common navigation and structural components should present visual continuity across all the web pages of your website and should not shift at all when going from web page to web page. In addition, while the image does not demonstrate this, you need to include a working link on the main page of both versions to get back to your home page. Also, while the image does not demonstrate this, you will need a working link from the text file version's main page to get to the database versions main page.

For the text file main page, you should use a file name that will automatically load when a user specifies only the folder name in the URL. The file should be uploaded to your Lab Assignment 4 directory. Your XHTML file should be well-formed and created using a strict XHTML DTD. You can create the web page using any text editor (Microsoft Notepad, RogSoft Notepad+, Adobe Homesite, etc) that is not WYSIWYG capable (Adobe Dreamweaver, Microsoft Word, etc).

You should use XHTML for the content of all pages and CSS for the stylizing and positioning of each of the pages. Using an external .css file, add formatting of your choice to make the output more aesthetically pleasing. These styles should be implemented as part of the final submission points. While you should continue to use the external CSS you created for your home page, you should not modify or update the file. Your new CSS file should not conflict or modify the layout and positioning of earlier lab assignments.

Approach

For the first submission point, start off by creating a main page with XHTML form that submits to a .php file. After creating the non-PHP XHTML page, determine, code, and validate the .php file. As part of this process, create the script that does the addition of a posting comment, and a .php file that outputs the posting comments as stored in the text file (by date). Of course, you will want a text file to store the user's names, email addresses, and comments. Finally, you can create individual .php files for the ascending and descending views.

After the first submission, you can start to create the second version of the site that stores the same information, but now in a database table. To layout and create the database table, determine the data types and primary key of the information to be stored. This version should provide all the same functionality as the text file version. Once you have both versions working, you can add the CSS formatting. Finally, validate all the pages and correct any ill-formed tags where necessary.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.