The programming languages used in the implementation of this project are PHP (Hypertext Preprocessor) and MYSQL programming languages. PHP is a general purpose server side scripting language originally designed for web development to produce dynamic web pages. It has also evolved to include a command line interface capability and can be used in stand-alone graphical applications.
The following features make PHP a preferred implementation language for this project:
- PHP has its root in C and C++. PHP syntax is most similar to C and C++ language syntax, so programmers find it easy to learn and manipulate.
- PHP can run on both UNIX and windows. Hence it is compatible across various operating systems.
- PHP has powerful output buffering that further increases over the output flow. PHP internally rearranges the buffer so that the header comes before the content.
- PHP is platform independent: this is because it is parsed by the web browser hence compatibility issues do not arise when code written in PHP is ported to a different platform.
- PHP can be used with a large number of relational database management systems, runs on all of the most popular web servers and is available to many different operating systems.
- PHP is fully an object oriented programming language and its platform independence and speed on LINUX servers help to build large and complex web applications.
- PHP has also attracted the development of many frameworks that provide building blocks and design structure to promote Rapid Application Development (RAD). Some of these include cake PHP, code igniter, Yii framework and Zend framework.
- PHP IDS add security to any PHP application to defend against intrusion. PHPIDS detects cross-site scripting (XSS), SQL injection, header injection, directory traversal, remote file execution, local file execution and Denial of Service (DOS).
MYSQL is a relational database management system written in C and C++, that runs as a server providing multi user access to a number of databases. MYSQL is used basically to create a relational database structure on a server in order to store data or automate procedures. The following features make MYSQL also a preferred implementation language in this research:
- MYSQL is written in C and C++ and tested with a broad range of different compilers. It also functions on different platforms.
- It uses multi-layered server design with independent modules.
- It is designed to be fully multi-threaded using kernel threads to easily use multiple CPUs if they are available.
- It is a server/client system. The database server (MYSQL) and the arbitrary many clients (application programs) which communicates with the server to query data and save changes.
- MYSQL is designed to make it relatively easy to add other storage engines. This is useful if you want to provide an SQL interface for an in-house database.
- It provides transactional and non-transactional storage engines, uses very fast B-tree disk tables with index compression and a fast thread-base memory allocation system.
- It executes very fast joins using an optimized nested loop join; implements in-memory hash tables which are used as temporary tables.
- It implements SQL functions using a highly optimized class library that should be as fast as possible.
- It provides the server as a separate program for use in a client/server networked environment and as a library that can be embedded (linked) into stand-alone applications. Such applications can be used in isolation or in environments where no network is available.