Campus Requirement System Abstract

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 75

CAMPUS REQUIREMENT SYSTEM

Abstract:-

The project entitled online registration for placement unit is a web portal developed in
PHP as the front end and mysql as the backend.

This project is the development of the placement unit portal for the Placement Cell. The
application can be browsed and accessed in and out of the Institute. The system access can be
done by the entering the login ID that has given to the user.

This system consists of a student login and an admin login, college login. This project is
beneficial for college students. Various companies visiting the campus for recruitment and even
the college placement officer. The software system allows the students to create their account to
manage the off campus details. The admin can check each student details, off campus
details .The system also consists of a student login and can view a list of off campus details. The
software system allows students to view a list of companies wherever the placement is going on
and they can send the queries to the placement officer regarding off campus details. The admin
has overall rights over the system and can moderate and delete any details not pertaining to
college placement rules. The system handles student as well as company data and efficiently
displays all this data to respective sides.

The proposed System meant to give more easiness to the admin that they can add and
retrieve information so quickly. Once the user open this web application at the front end all the
off campus details can be shown available to them. There are mainly three types of users they are
Current Student, Placement Officers, admin of the college, The administrator is the master user;
he gets the most number of priorities than the other users. The administrator can view and
approve the various posts regarding off campus.

The aim of the proposed system is to develop a system with improved facilities. The
proposed system can overcome all the limitation of the existing system, such as student’s
information is maintained in the database, it gives more security to data, ensures data accuracy,

1
reduces paper work and save time, it makes information flow efficient and paves way for easy
report generation, reduce the space.

SYSTEM STUDY

FEASIBILTY STUDY

The feasibility of the project is analyzed in this phase and business proposal is put forth
with a very general plan for the project and some cost estimates. During system analysis the
feasibility study of the proposed system is to be carried out. This is to ensure that the proposed
system is not a burden to the company. For feasibility analysis, some understanding of the
major requirements for the system is essential.

The feasibility study investigates the problem and the information needs of the
stakeholders. It seeks to determine the resources required to provide an information systems
solution, the cost and benefits of such a solution, and the feasibility of such a solution. The
analyst conducting the study gathers information using a variety of methods, the most popular of
which are:

 Interviewing users, employees, managers, and customers.


 Developing and administering questionnaires to interested stakeholders, such as potential
users of the information system.
 Observing or monitoring users of the current system to determine their needs as well as
their satisfaction and dissatisfaction with the current system.
 Collecting, examining, and analyzing documents, reports, layouts, procedures, manuals,
and any other documentation relating to the operations of the current system.
 Modeling, observing, and simulating the work activities of the current system.

The goal of the feasibility study is to consider alternative information systems solutions, evaluate
their feasibility, and propose the alternative most suitable to the organization. The feasibility of a
proposed solution is evaluated in terms of its components. These components are:

 ECONOMICAL FEASIBILITY
2
 TECHNICAL FEASIBILITY
 SOCIAL FEASIBILITY
 OPERATIONAL FEASIBILITY
ECONOMICAL FEASIBILITY

This study is carried out to check the economic impact that the system will have on the
organization. The amount of fund that the company can pour into the research and development
of the system is limited. The expenditures must be justified. Thus the developed system as well
within the budget and this was achieved because most of the technologies used are freely
available. Only the customized products had to be purchased.

TECHNICAL FEASIBILITY

This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand on the available
technical resources. This will lead to high demands on the available technical resources. This
will lead to high demands being placed on the client. The developed system must have a modest
requirement, as only minimal or null changes are required for implementing this system.

SOCIAL FEASIBILITY

The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently.
The user must not feel threatened by the system, instead must accept it as a
necessity.
The level of acceptance by the users solely depends on the methods that are
employed to educate the user about the system and to make him familiar with it.
His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
OPERATIONAL FEASIBILITY

3
The ability, desire, and willingness of the stakeholders to use, support, and
operate the proposed computer information system. The stakeholders include
management, employees, customers, and suppliers. The stakeholders are interested
in systems that are easy to operate, make few, if any, errors, produce the desired
information, and fall within the objectives of the organization.

Existing System:

The existing system is a manual system. Here the placement officer needs to save the
information in the form of excel sheets or Disk Drives. There is no sharing is possible if the data
is in the form of paper or Disk drives. The manual system gives us very less security for saving
data; some data may be lost due to mismanagement. It’s a limited system and fewer users
friendly.

Drawback

 Searching of particular information is very critical it takes lot of time.


 It is very critical to maintain the records manually.
 It is a tedious job to manage the queries of individual students.
 Very difficult to know the details of the placement information.
Proposed System:

The proposed system is automated system. This existing system manually registering the
student details, campus interview dates, etc it will be more difficult to maintain and gathering
information about the campus interview information’s. With the help of this proposed system
admin adds the college placement officer’s to this site. So that he can add the placement
information of his college. With the help of this system student can view the information’s of the
placement details of different colleges that have been frequently updated by the placement
officer. It provides the ease of accessibility for the admin to maintain the student’s information.
Student can easily register the interview for further process.

4
Features

The development of this new system contains the following activities, which try to
automate the entire process keeping in the view of database integration approach.

 User Friendliness is provided in the application with various controls provided by system
Rich User Interface.
 The system makes the overall project management much easier and flexible.
 It can be accessed over the Intranet.
 Authentication is provided for this application only registered Users can access.
 There is no risk of data management at any level while the project development is under
process.
 The speed and accuracy of this system will improve more and more.

Modules

 Authentication
 Admin
 Registration
 Updating placement information
 Viewing placement information
 Query sending

Authentication:-

This module contains all the information about the authenticated user. Without his
username and password he/she can’t enter into the login session. It provides user permissions.

Admin:-

Admin is responsible for the entire process. He has all the permission. He is responsible
for adding the placement officers of various colleges and managing the student profile. With the

5
help of this module he adds the placement officer’s identity with the help of that identity,
placement officer’s can log in the system and they can do their functions.

Registration:-

To use this system the students have to register their identity with this system .The
registration details includes name, user name, password, gender, dept, ph no, mail id etc.

Updating placement information:-

With the help of this module the placement officer of various colleges updates the
information about the placement details such as the interview date, time, place etc

Viewing placement information:-

With the help of this module students can login and view the placement information’s
which are updated by the placement officer.

Query sending:-

This module provides interactivity between the student and the placement officer by
providing the query module. By using this module the student can send queries (i.e. doubts)
regarding placement

SYSTEM SPECIFICATION

HARDWARE SPECIFICATION

CPU : Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz 1.99 GHz

RAM : Minimum of 8GB RAM

Monitor : 15” Color Monitor

System type : 64-bit operating system, x64-based processor

6
Mouse : Optical mouse

SOFTWARE SPECIFICATION

Operating System : Windows 11

Front End : PHP 8.2

Back End : My SQL 8.0

PHP Programming

PHP is a scripting language designed to fill the gap between SSI (Server Side Includes)
and Perl, intended for the Web environment. Its principal application is the implementation of
Web pages having dynamic content. PHP has gained quite a following in recent times, and it is
one of the frontrunners in the Open Source software movement. Its popularity derives from its C-
like syntax, and its simplicity. The newest version of PHP is 5.5 and it is heavily recommended
to always use the newest version for better security, performance and of course features.

If you've been to a website that prompts you to login, you've probably encountered a
server-side scripting language. Due to its market saturation, this means you've probably come
across PHP. PHP was designed by Rasmus Lerdorf to display his resume online and to collect
data from his visitors.

Basically, PHP allows a static webpage to become dynamic. "PHP" is an acronym that
stands for "PHP: Hypertext Preprocessor". The word "Preprocessor" means that PHP makes
changes before the HTML page is created. This enables developers to create powerful
applications that can publish a blog, remotely control hardware, or run a powerful website such
as Wikipedia or Wikibooks. Of course, to accomplish something such as this, you need a
database application such as MySQL.

Before you embark on the wonderful journey of Server Side Processing, it is


recommended that you have a basic understanding of the HyperText Markup Language (HTML).
But PHP can also be used to build GUI-driven applications for example by using PHP-GTK.
7
PHP is a server-side scripting language designed for web development but also used as a
general-purpose programming language. As of January 2013, PHP was installed on more than
240 million websites (39% of those sampled) and 2.1 million web servers. Originally created by
Rasmus Lerdorf in 1994, the reference implementation of PHP (powered by the Zend Engine) is
now produced by The PHP Group. While PHP originally stood for Personal Home Page, it now
stands for PHP: Hypertext Preprocessor, which is a recursive backronym.

PHP code can be simply mixed with HTML code, or it can be used in combination with
various templating engines and web frameworks. PHP code is usually processed by a PHP
interpreter, which is usually implemented as a web server's native module or a Common
Gateway Interface (CGI) executable. After the PHP code is interpreted and executed, the web
server sends resulting output to its client, usually in form of a part of the generated web page; for
example, PHP code can generate a web page's HTML code, an image, or some other data. PHP
has also evolved to include a command-line interface (CLI) capability and can be used in
standalone graphical applications.

The canonical PHP interpreter, powered by the Zend Engine, is free software released
under the PHP License. PHP has been widely ported and can be deployed on most web servers
on almost every operating system and platform, free of charge.

Despite its popularity, no written specification or standard existed for the PHP language
until 2014, leaving the canonical PHP interpreter as a de facto standard. Since 2014, there is
ongoing work on creating a formal PHP specification.

PHP development began in 1994 when Rasmus Lerdorf wrote a series of Common
Gateway Interface (CGI) binaries in C, which he used to maintain his personal homepage. He
extended them to add the ability to work with web forms and to communicate with databases,
and called this implementation "Personal Home Page/Forms Interpreter" or PHP/FI.

PHP/FI could be used to build simple, dynamic web applications. Lerdorf initially
announced the release of PHP/FI as "Personal Home Page Tools (PHP Tools) version 1.0"
publicly to accelerate bug location and improve the code, on the Usenet discussion group
8
comp.infosystems.www.authoring.cgi on June 8, 1995. This release already had the basic
functionality that PHP has as of 2013. This included Perl-like variables, form handling, and the
ability to embed HTML. The syntax resembled that of Perl but was simpler, more limited and
less consistent.

Early PHP was not intended to be a new programming language, and grew organically,
with Lerdorf noting in retrospect: "I don’t know how to stop it, there was never any intent to
write a programming language […] I have absolutely no idea how to write a programming
language, I just kept adding the next logical step on the way." A development team began to
form and, after months of work and beta testing, officially released PHP/FI 2 in November 1997.

One criticism of PHP is that it was not originally designed, but instead it was developed
organically; among other things, this has led to inconsistent naming of functions and inconsistent
ordering of their parameters. In some cases, the function names were chosen to match the lower-
level libraries which PHP was "wrapping", while in some very early versions of PHP the length
of the function names was used internally as a hash function, so names were chosen to improve
the distribution of hash values.

Zeev Suraski and Andi Gutmans rewrote the parser in 1997 and formed the base of PHP
3, changing the language's name to the recursive acronym PHP: Hypertext Preprocessor.
Afterwards, public testing of PHP 3 began, and the official launch came in June 1998. Suraski
and Gutmans then started a new rewrite of PHP's core, producing the Zend Engine in 1999. They
also founded Zend Technologies in Ramat Gan, Israel.

On May 22, 2000, PHP 4, powered by the Zend Engine 1.0, was released. As of August
2008 this branch reached version 4.4.9. PHP 4 is no longer under development nor will any
security updates be released.

On July 13, 2004, PHP 5 was released, powered by the new Zend Engine II. PHP 5
included new features such as improved support for object-oriented programming, the PHP Data
Objects (PDO) extension (which defines a lightweight and consistent interface for accessing
databases), and numerous performance enhancements. In 2008 PHP 5 became the only stable
9
version under development. Late static binding had been missing from PHP and was added in
version 5.3.

Many high-profile open-source projects ceased to support PHP 4 in new code as of


February 5, 2008, because of the GoPHP5 initiative, provided by a consortium of PHP
developers promoting the transition from PHP 4 to PHP 5.

Over time, PHP interpreters became available on most existing 32-bit and 64-bit
operating systems, either by building them from the PHP source code, or by using pre-built
binaries. For the PHP versions 5.3 and 5.4, the only available Microsoft Windows binary
distributions were 32-bit x86 builds, requiring Windows 32-bit compatibility mode while using
Internet Information Services (IIS) on a 64-bit Windows platform. PHP version 5.5 made the 64-
bit x86-64 builds available for Microsoft Windows.

PHP 6 and Unicode

PHP received mixed reviews due to lacking native Unicode support at the core language
level. In 2005, a project headed by Andrei Zmievski was initiated to bring native Unicode
support throughout PHP, by embedding the International Components for Unicode (ICU) library,
and representing text strings as UTF-16 internally. Since this would cause major changes both to
the internals of the language and to user code, it was planned to release this as version 6.0 of the
language, along with other major features then in development.

However, a shortage of developers who understood the necessary changes, and


performance problems arising from conversion to and from UTF-16, which is rarely used in a
web context, led to delays in the project. As a result, a PHP 5.3 release was created in 2009, with
many non-Unicode features back-ported from PHP 6, notably namespaces. In March 2010, the
project in its current form was officially abandoned, and a PHP 5.4 release was prepared
containing most remaining non-Unicode features from PHP 6, such as traits and closure re-
binding. Initial hopes were that a new plan would be formed for Unicode integration, but as of
2014 none has been adopted.

10
PHP 7

As of 2014, work is underway on a new major PHP version named PHP 7. There was
some dispute as to whether the next major version of PHP was to be called PHP 6 or PHP 7.
While the PHP 6 unicode experiment had never been released, a number of articles and book
titles referenced the old PHP 6 name, which might have caused confusion if a new release were
to reuse the PHP 6 name. After a vote, the name PHP 7 was chosen.

PHP 7 gets its foundations from an experimental PHP branch that was originally named
phpng (PHP next generation), which aims at optimizing PHP performance by refactoring the
Zend Engine while retaining near-complete language compatibility. As of 14 July 2014,
WordPress-based benchmarks, which serve as the main benchmark suite for phpng project, show
an almost 100% increase in performance. Changes from phpng are also expected to make it
easier to improve performance in the future, as more compact data structures and other changes
are seen as better suited for a successful migration to a just-in-time (JIT) compiler. Because of
the significant changes, this reworked Zend Engine will be called Zend Engine 3, succeeding the
Zend Engine 2 used in PHP 5.

In terms of new language features, PHP 7 will add features such as return type
declarations, which will complement its existing parameter type declarations. PHP 7 will also
contain an improved variable syntax which is internally consistent and complete, resolving a
long-standing issue in PHP, what will allow use of ->, [], (), {}, and :: operators with arbitrary
meaningful left-hand-side expressions.

Syntax

The following Hello world program is written in PHP code embedded in an HTML document:

<!DOCTYPE html>
<html>
<head>
<title>PHP Test</title>

11
</head>
<body>
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>

However, as PHP does not need to be embedded in HTML or used with a web server, the
simplest version of a Hello World program can be written like this, with the closing tag omitted
as preferred in files containing pure PHP code (prior to PHP 5.4.0, this short syntax for echo()
only works with the short_open_tag configuration setting enabled, while for PHP 5.4.0 and later
it is always available):

<?= 'Hello world';

The PHP interpreter only executes PHP code within its delimiters. Anything outside its
delimiters is not processed by PHP (although non-PHP text is still subject to control structures
described in PHP code). The most common delimiters are <?php to open and ?> to close PHP
sections. <script language="php"> and </script> delimiters are also available, as are the
shortened forms <? or <?= (which is used to echo back a string or variable) and ?> as well as
ASP-style short forms <% or <%= and %>. Short delimiters make script files less portable, since
support for them can be disabled in the local PHP configuration, and they are therefore
discouraged. The purpose of all these delimiters is to separate PHP code from non-PHP code,
including HTML.

The first form of delimiters, <?php and ?>, in XHTML and other XML documents,
creates correctly formed XML "processing instructions". This means that the resulting mixture of
PHP code and other markup in the server-side file is itself well-formed XML.

Variables are prefixed with a dollar symbol, and a type does not need to be specified in
advance. PHP 5 introduced type hinting that allows functions to force their parameters to be
objects of a specific class, arrays, interfaces or callback functions. However, type hints can not
be used with scalar types such as integer or string.
12
Unlike function and class names, variable names are case sensitive. Both double-quoted
("") and heredoc strings provide the ability to interpolate a variable's value into the string. PHP
treats newlines as whitespace in the manner of a free-form language, and statements are
terminated by a semicolon. PHP has three types of comment syntax: /* */ marks block and inline
comments; // as well as # are used for one-line comments. The echo statement is one of several
facilities PHP provides to output text, e.g., to a web browser.

In terms of keywords and language syntax, PHP is similar to most high level languages
that follow the C style syntax. if conditions, for and while loops, and function returns are similar
in syntax to languages such as C, C++, C#, Java and Perl.

Data types

PHP stores whole numbers in a platform-dependent range, either a 64-bit or 32-bit signed
integer equivalent to the C-language long type. Unsigned integers are converted to signed values
in certain situations; this behavior is different from other programming languages. Integer
variables can be assigned using decimal (positive and negative), octal, hexadecimal, and binary
notations.

Floating point numbers are also stored in a platform-specific range. They can be specified
using floating point notation, or two forms of scientific notation. PHP has a native Boolean type
that is similar to the native Boolean types in Java and C++. Using the Boolean type conversion
rules, non-zero values are interpreted as true and zero as false, as in Perl and C++.

The null data type represents a variable that has no value; NULL is the only allowed value
for this data type.

Variables of the "resource" type represent references to resources from external sources.
These are typically created by functions from a particular extension, and can only be processed
by functions from the same extension; examples include file, image, and database resources.

Arrays can contain elements of any type that PHP can handle, including resources,
objects, and even other arrays. Order is preserved in lists of values and in hashes with both keys
13
and values, and the two can be intermingled. PHP also supports strings, which can be used with
single quotes, double quotes, nowdoc or heredoc syntax.

The Standard PHP Library (SPL) attempts to solve standard problems and implements
efficient data access interfaces and classes.

Functions

PHP has hundreds of functions provided by the core language functionality and
thousands more available via various extensions; these functions are well documented in the
online PHP documentation. However, the built-in library has a wide variety of naming
conventions and associated inconsistencies, as described under history above.

Additional functions can be defined by the developer:

function myAge($birthYear) // defines a function, this one is named


"myAge"
{
$yearsOld = date('Y') - $birthYear; // calculates the age
return $yearsOld . ' year' . ($yearsOld != 1 ? 's' : ''); // returns the age in a descriptive form
}

echo 'I am currently ' . myAge(1981) . ' old.'; // outputs the text concatenated
// with the return value of myAge()
// As the result of this syntax, myAge() is called.
// In 2014, the output of this sample program will be 'I am currently 33 years old.'

In PHP, normal functions are not first-class and can only be referenced by their name
directly, or dynamically by a variable containing the name of the function (referred to as
"variable functions"). User-defined functions can be created at any time without being
prototyped. Functions can be defined inside code blocks, permitting a run-time decision as to
whether or not a function should be defined. Function calls must use parentheses, with the

14
exception of zero-argument class constructor functions called with the PHP new operator, where
parentheses are optional.

Until PHP 5.3, support for true anonymous functions or closures did not exist in PHP.
While create_function() exists since PHP 4.0.1, it is merely a thin wrapper around eval() that
allows normal PHP functions to be created during program execution. Also, support for variable
functions allows normal PHP functions to be used, for example, as callbacks or within function
tables. PHP 5.3 added support for closures, which are true anonymous, first-class functions,
whose syntax can be seen in the following example:

function getAdder($x)
{
return function($y) use ($x)
{
return $x + $y;
};
}

$adder = getAdder(8);
echo $adder(2); // prints "10"

In the example above, getAdder() function creates a closure using passed argument $x
(the keyword use imports a variable from the lexical context), which takes an additional
argument $y, and returns the created closure to the caller. Such a function is a first-class object,
meaning that it can be stored in a variable, passed as a parameter to other functions, etc.

The goto flow control statement is used as in the following example:

function lock()
{
$file = fopen('file.txt', 'r+');

15
retry:
if (!flock($file, LOCK_EX | LOCK_NB))
goto retry;

fwrite($file, 'Success!');
fclose($file);
}

When flock() is called, PHP opens a file and tries to lock it. The target label retry: defines the
point to which execution should return if flock() is unsuccessful and goto retry; is called. The
goto statement is restricted and requires that the target label be in the same file and context.

The goto statement has been supported since PHP 5.3.

Objects

Basic object-oriented programming functionality was added in PHP 3 and improved in


PHP 4. Object handling was completely rewritten for PHP 5, expanding the feature set and
enhancing performance. In previous versions of PHP, objects were handled like value types. The
drawback of this method was that the whole object was copied when a variable was assigned or
passed as a parameter to a method. In the new approach, objects are referenced by handle, and
not by value.

PHP 5 introduced private and protected member variables and methods, along with
abstract classes, final classes, abstract methods, and final methods. It also introduced a standard
way of declaring constructors and destructors, similar to that of other object-oriented languages
such as C++, and a standard exception handling model. Furthermore, PHP 5 added interfaces and
allowed for multiple interfaces to be implemented. There are special interfaces that allow objects
to interact with the runtime system. Objects implementing ArrayAccess can be used with array
syntax and objects implementing Iterator or IteratorAggregate can be used with the foreach
language construct. There is no virtual table feature in the engine, so static variables are bound
with a name instead of a reference at compile time.

16
If the developer creates a copy of an object using the reserved word clone, the Zend
engine will check whether a __clone() method has been defined. If not, it will call a default
__clone() which will copy the object's properties. If a __clone() method is defined, then it will be
responsible for setting the necessary properties in the created object. For convenience, the engine
will supply a function that imports the properties of the source object, so the programmer can
start with a by-value replica of the source object and only override properties that need to be
changed.

The following is a basic example of object-oriented programming in PHP:

class Person
{
public $firstName;
public $lastName;

public function __construct($firstName, $lastName = '') { // optional second argument


$this->firstName = $firstName;
$this->lastName = $lastName;
}

public function greet() {


return 'Hello, my name is ' . $this->firstName .
(($this->lastName != '') ? (' ' . $this->lastName) : '') . '.';
}

public static function staticGreet($firstName, $lastName) {


return 'Hello, my name is ' . $firstName . ' ' . $lastName . '.';
}
}

$he = new Person('John', 'Smith');


$she = new Person('Sally', 'Davis');
17
$other = new Person('iAmine');

echo $he->greet(); // prints "Hello, my name is John Smith."


echo '<br />';

echo $she->greet(); // prints "Hello, my name is Sally Davis."


echo '<br />';

echo $other->greet(); // prints "Hello, my name is iAmine."


echo '<br />';

echo Person::staticGreet('Jane', 'Doe'); // prints "Hello, my name is Jane Doe."

The visibility of PHP properties and methods is defined using the keywords public,
private, and protected. The default is public, if only var is used; var is a synonym for public.
Items declared public can be accessed everywhere. protected limits access to inherited classes
(and to the class that defines the item). private limits visibility only to the class that defines the
item. Objects of the same type have access to each other's private and protected members even
though they are not the same instance. PHP's member visibility features have sometimes been
described as "highly useful." However, they have also sometimes been described as "at best
irrelevant and at worst positively harmful."

Implementations

The original, only complete and most widely used PHP implementation is powered by the
Zend Engine and known simply as PHP. To disambiguate it from other implementations, it is
sometimes unofficially referred to as "Zend PHP". The Zend Engine compiles PHP source code
on-the-fly into an internal format that it can execute, thus it works as an interpreter. It is also the
"reference implementation" of PHP, as PHP has no formal specification, and so the semantics of
Zend PHP define the semantics of PHP itself. Due to the complex and nuanced semantics of
PHP, defined by how Zend works, it is difficult for competing implementations to offer complete
compatibility.

18
PHP's single-request-per-script-execution model, and the fact the Zend Engine is an
interpreter, lead to inefficiency. As a result, various products have been developed to help
improve PHP performance. In order to speed up execution time and not have to compile the PHP
source code every time the web page is accessed, PHP scripts can also be deployed in the PHP
engine's internal format by using an opcode cache, which works by caching the compiled form of
a PHP script (opcodes) in shared memory to avoid the overhead of parsing and compiling the
code every time the script runs. An opcode cache, Zend Opcache, is built into PHP since version
5.5. Another example of a widely used opcode cache is the Alternative PHP Cache (APC),
which is available as a PECL extension.

While Zend PHP is still the most popular implementation, several other implementations
have been developed. Some of these are compilers or support JIT compilation, and hence offer
performance benefits over Zend PHP at the expense of lacking full PHP compatibility.
Alternative implementations include the following:

 HipHop Virtual Machine (HHVM) – developed at Facebook and available as open


source, it converts PHP code into a high-level bytecode (commonly known as an
intermediate language), which is then translated into x86-64 machine code dynamically at
runtime by a just-in-time (JIT) compiler, resulting in up to 6× performance
improvements.
 Parrot – a virtual machine designed to run dynamic languages efficiently; Pipp transforms
the PHP source code into the Parrot intermediate representation, which is then translated
into the Parrot's bytecode and executed by the virtual machine.
 Phalanger – compiles PHP into Common Intermediate Language (CIL) bytecode
 HipHop – developed at Facebook and available as open source, it transforms the PHP
scripts into C++ code and then compiles the resulting code, reducing the server load up to
50%. In early 2013, Facebook deprecated it in favor of HHVM due to multiple reasons,
including deployment difficulties and lack of support for the whole PHP language,
including the create_function() and eval() constructs.

19
Licensing

PHP is free software released under the PHP License, which stipulates that:

Products derived from this software may not be called "PHP", nor may "PHP" appear in
their name, without prior written permission from group@php.net. You may indicate that your
software works in conjunction with PHP by saying "Foo for PHP" instead of calling it "PHP
Foo" or "phpfoo".

This restriction on use of the name PHP makes the PHP License incompatible with the
GNU General Public License (GPL), while the Zend License is incompatible due to an
advertising clause similar to that of the original license of BSD.

Development and community

PHP includes various free and open-source libraries in its source distribution, or uses
them in resulting PHP binary builds. PHP is fundamentally an Internet-aware system with built-
in modules for accessing File Transfer Protocol (FTP) servers and many database servers,
including PostgreSQL, MySQL, Microsoft SQL Server and SQLite (which is an embedded
database), LDAP servers, and others. Numerous functions familiar to C programmers, such as
those in the stdio family, are available in standard PHP builds.

PHP allows developers to write extensions in C to add functionality to the PHP language.
PHP extensions can be compiled statically into PHP or loaded dynamically at runtime.
Numerous extensions have been written to add support for the Windows API, process
management on Unix-like operating systems, multibyte strings (Unicode), cURL, and several
popular compression formats. Other PHP features made available through extensions include
integration with IRC, dynamic generation of images and Adobe Flash content, PHP Data
Objects (PDO) as an abstraction layer used for accessing databases, and even speech synthesis.
Some of the language's core functions, such as those dealing with strings and arrays, are also
implemented as extensions. The PHP Extension Community Library (PECL) project is a
repository for extensions to the PHP language.

20
Some other projects, such as Zephir, provide the ability for PHP extensions to be created
in a high-level language and compiled into native PHP extensions. Such an approach, instead of
writing PHP extensions directly in C, simplifies the development of extensions and reduces the
time required for programming and testing.

Zend Technologies provides a certification exam for programmers to become certified


PHP developers.

Installation and configuration

There are two primary ways for adding support for PHP to a web server – as a native web
server module, or as a CGI executable. PHP has a direct module interface called Server
Application Programming Interface (SAPI), which is supported by many web servers including
Apache HTTP Server, Microsoft IIS, Netscape (now defunct) and iPlanet. Some other web
servers, such as OmniHTTPd, support the Internet Server Application Programming Interface
(ISAPI), which is a Microsoft's web server module interface. If PHP has no module support for a
web server, it can always be used as a Common Gateway Interface (CGI) or FastCGI processor;
in that case, the web server is configured to use PHP's CGI executable to process all requests to
PHP files.

PHP-FPM (FastCGI Process Manager) is an alternative FastCGI implementation for


PHP, bundled with the official PHP distribution since version 5.3.3. When compared to the older
FastCGI implementation, it contains some additional features, mostly useful for heavily loaded
web servers.

When using PHP for command-line scripting, a PHP command-line interface (CLI)
executable is needed. PHP supports a CLI SAPI as of PHP 4.3.0. The main focus of this SAPI is
developing shell applications using PHP. There are quite a few differences between the CLI
SAPI and other SAPIs, although they do share many of the same behaviors.

PHP can also be used for writing desktop graphical user interface (GUI) applications, by
using the PHP-GTK extension. PHP-GTK is not included in the official PHP distribution, and as

21
an extension it can be used only with PHP versions 5.1.0 and newer. The most common way of
installing PHP-GTK is compiling it from the source code.

When PHP is installed and used in cloud environments, software development kits (SDKs)
are provided for using cloud-specific features. For example:

 Amazon Web Services provides the AWS SDK for PHP


 Windows Azure can be used with the Windows Azure SDK for PHP.

Numerous configuration options are supported, affecting both core PHP features and
extensions. Configuration file php.ini is searched for in different locations, depending on the way
PHP is used. The configuration file is split into various sections, while some of the configuration
options can be also set within the web server configuration.

Use
A broad overview of the LAMP software bundle, displayed here together with Squid.

22
PHP is a general-purpose scripting language that is especially suited to server-side web
development, in which case PHP generally runs on a web server. Any PHP code in a requested
file is executed by the PHP runtime, usually to create dynamic web page content or dynamic
images used on websites or elsewhere. It can also be used for command-line scripting and client-
side graphical user interface (GUI) applications. PHP can be deployed on most web servers,
many operating systems and platforms, and can be used with many relational database
management systems (RDBMS). Most web hosting providers support PHP for use by their
clients. It is available free of charge, and the PHP Group provides the complete source code for
users to build, customize and extend for their own use.

PHP acts primarily as a filter, taking input from a file or stream containing text and/or
PHP instructions and outputting another stream of data. Most commonly the output will be
HTML, although it could be JSON, XML or binary data such as image or audio formats. Since
23
PHP 4, the PHP parser compiles input to produce bytecode for processing by the Zend Engine,
giving improved performance over its interpreter predecessor.

Originally designed to create dynamic web pages, PHP now focuses mainly on server-
side scripting,[126] and it is similar to other server-side scripting languages that provide dynamic
content from a web server to a client, such as Microsoft's ASP.NET, Sun Microsystems'
JavaServer Pages, and mod_perl. PHP has also attracted the development of many software
frameworks that provide building blocks and a design structure to promote rapid application
development (RAD). Some of these include PRADO, CakePHP, Symfony, CodeIgniter, Laravel,
Yii Framework, and Zend Framework, offering features similar to other web application
frameworks.

The LAMP architecture has become popular in the web industry as a way of deploying
web applications. PHP is commonly used as the P in this bundle alongside Linux, Apache and
MySQL, although the P may also refer to Python, Perl, or some mix of the three. Similar
packages, WAMP and MAMP, are also available for Windows and OS X, with the first letter
standing for the respective operating system. Although both PHP and Apache are provided as
part of the Mac OS X base install, users of these packages seek a simpler installation mechanism
that can be more easily kept up to date.

24
As of April 2007, over 20 million Internet domains had web services hosted on servers
with PHP installed and mod_php was recorded as the most popular Apache HTTP Server
module. As of October 2010, PHP was used as the server-side programming language on 75% of
all websites whose server-side programming language was known (as of February 2014, the
percentage had reached 82%), and PHP was the most-used open source software within

25
enterprises. Web content management systems written in PHP include MediaWiki, Joomla, eZ
Publish, SilverStripe, WordPress, Drupal, Moodle, the user-facing portion of Facebook, and
Digg.

For specific and more advanced usage scenarios, PHP offers a well defined and
documented way for writing custom extensions in C or C++. Besides extending the language
itself in form of additional libraries, extensions are providing a way for improving execution
speed where it is critical and there is room for improvements by using a true compiled language.
PHP also offers well defined ways for embedding itself into other software projects. That way
PHP can be easily used as an internal scripting language for another project, also providing tight
interfacing with the project's specific internal data structures.

PHP received mixed reviews due to lacking support for multithreading at the core
language level, though using threads is made possible by the "pthreads" PECL extension.

Security

In 2013, 9% of all vulnerabilities listed by the National Vulnerability Database were


linked to PHP; historically, about 30% of all vulnerabilities listed since 1996 in this database are
linked to PHP. Technical security flaws of the language itself or of its core libraries are not
frequent (22 in 2009, about 1% of the total although PHP applies to about 20% of programs
listed). Recognizing that programmers make mistakes, some languages include taint checking to
automatically detect the lack of input validation which induces many issues. Such a feature is
being developed for PHP, but its inclusion into a release has been rejected several times in the
past.

There are advanced protection patches such as Suhosin and Hardening-Patch, especially
designed for web hosting environments.

There are certain language features and configuration parameters (primarily the default
values for such runtime settings) that make PHP prone to security issues. Among these,
magic_quotes_gpc and register_globals configuration directives are the best known; the latter

26
made any URL parameters become PHP variables, opening a path for serious security
vulnerabilities by allowing an attacker to set the value of any uninitialized global variable and
interfere with the execution of a PHP script. Support for "magic quotes" and "register globals"
has been deprecated as of PHP 5.3.0, and removed as of PHP 5.4.0.

Another example for the runtime settings vulnerability comes from failing to disable PHP
execution (via engine configuration directive) for the directory where uploaded images are
stored; leaving the default settings can result in execution of malicious PHP code embedded
within the uploaded images. Also, leaving enabled the dynamic loading of PHP extensions (via
enable_dl configuration directive) in a shared web hosting environment can lead to security
issues.

Also, implied type conversions that result in incompatible values being treated as
identical against the programmer's intent can lead to security issues. For example, the result of
"0e1234" == "0" comparison will be true because the first compared value will be treated as
scientific notation of a number (0×101234) with value of zero. This feature resulted in
authentication vulnerabilities in Simple Machines Forum, Typo3 and phpBB when MD5
password hashes were compared. Instead, identity operator (===) should be used; "0e1234" ===
"0" results in false.

MySQL

MySQL is (as of July 2013) the world's second most widely used relational database
management system (RDBMS) and most widely used open-source RDBMS. It is named after co-
founder Michael Widenius's daughter, my. The SQL acronym stands for Structured Query
Language.

The MySQL development project has made its source code available under the terms of
the GNU General Public License, as well as under a variety of proprietary agreements. MySQL

27
was owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now
owned by Oracle Corporation.

MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open source web application software stack (and other
'AMP' stacks). LAMP is an acronym for "Linux, Apache, MySQL, Perl/PHP/Python." Free-
software-open source projects that require a full-featured database management system often use
MySQL.

For proprietary use, several paid editions are available, and offer additional functionality.
Applications which use MySQL databases include: TYPO3, MODx, Joomla, WordPress,
phpBB, MyBB, Drupal and other software. MySQL is also used in many high-profile, large-
scale websites, including Google[13][14] (though not for searches), Face book, Twitter, Flickr, and
YouTube.

Interfaces
MySQL is a relational database management system (RDBMS), and ships with no GUI
tools to administer MySQL databases or manage data contained within the databases. Users may
use the included command line tools, or use MySQL "front-ends", desktop software and web
applications that create and manage MySQL databases, build database structures, back up data,
inspect status, and work with data records. The official set of MySQL front-end tools, MySQL
Workbench is actively developed by Oracle, and is freely available for use.

Graphical

The official MySQL Workbench is a free integrated environment developed by MySQL


AB, that enables users to graphically administer MySQL databases and visually design database
structures. MySQL Workbench replaces the previous package of software, MySQL GUI Tools.
Similar to other third-party packages, but still considered the authoritative MySQL front end,
MySQL Workbench lets users manage database design & modeling, SQL development
(replacing MySQL Query Browser) and Database administration (replacing MySQL
Administrator).
28
MySQL Workbench is available in two editions, the regular free and open source
Community Edition which may be downloaded from the MySQL website, and the proprietary
Standard Edition which extends and improves the feature set of the Community Edition.

Third-party proprietary and free graphical administration applications (or "front ends")
are available that integrate with MySQL and enable users to work with database structure and
data visually. Some well-known front ends, in alphabetical order, are:

 Adminer – a free MySQL front end written in one PHP script, capable of managing
multiple databases, with many CSS skins available
 Chive a free, open source, web-based database management tool designed as an
alternative to phpMyAdmin
 Database Workbench – a software application for development and administration of
multiple relational databases including MySQL, with interoperationality between
different database systems
 DBEdit – a free front end for MySQL and other databases
 HeidiSQL – a full featured free front end that runs on Windows, and can connect to local
or remote MySQL servers to manage databases, tables, column structure, and individual
data records. Also supports specialised GUI features for date/time fields and enumerated
multiple-value fields.
 LibreOffice Base – LibreOffice Base allows the creation and management of databases,
preparation of forms and reports that provide end users easy access to data. Like
Microsoft Access, it can be used as a front-end for various database systems, including
Access databases (JET), ODBC data sources, and MySQL or PostgreSQL.
 Navicat – a series of proprietary graphical database management applications, developed
for Windows, Macintosh and Linux
 OpenOffice.org – freely available OpenOffice.org Base can manage MySQL databases if
the entire suite is installed
 phpMyAdmin – a free Web-based front-end, widely installed by web hosting services
since it is developed in PHP and included in the LAMP stack, and MAMP, XAMPP and
WAMP software bundle installers
29
 SQLBuddy – a free Web-based front end, developed in PHP
 SQLyog – proprietary, but there is also a free 'community' edition available
 Toad for MySQL – a free development and administration front end for MySQL from
Dell Software
 Webmin – a free Web-based management utility and a MySQL front end, developed in
Perl with some parts written in Java

Other available proprietary MySQL front ends include dbForge Studio for MySQL,
DBStudio, Epictetus, Microsoft Access, Oracle SQL Developer, SchemaBank, SQLPro SQL
Client, Toad Data Modeler and DaDaBIK.

Command line

MySQL ships with many command line tools, from which the main interface is 'mysql' client.
Third parties have also developed tools to manage MySQL servers.

 MySQL Utilities – a set of utilities designed to perform common maintenance and


administrative tasks. Originally included as part of the MySQL Workbench, the utilities
are now a stand-alone download available from Oracle.

 Percona Toolkit – a cross-platform toolkit for MySQL, developed in Perl.[31] Percona


Toolkit can be used to prove replication is working correctly, fix corrupted data,
automate repetitive tasks, and speed up servers. Percona Toolkit is included with several
Linux distributions such as CentOS and Debian, and packages are available for Fedora
and Ubuntu as well. Percona Toolkit was originally developed as Maatkit, but as of late
2011, Maatkit is no longer developed.

Programming

MySQL works on many system platforms, including AIX, BSDi, FreeBSD, HP-UX,
eComStation, i5/OS, IRIX, Linux, OS X, Microsoft Windows, NetBSD, Novell NetWare,
OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris, Symbian, SunOS, SCO OpenServer,
SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also exists.
30
MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-
brewed lexical analyzer. Many programming languages with language-specific APIs include
libraries for accessing MySQL databases. These include MySQL Connector/Net for integration
with Microsoft's Visual Studio (languages such as C# and VB are most commonly used) and the
JDBC driver for Java. In addition, an ODBC interface called MyODBC allows additional
programming languages that support the ODBC interface to communicate with a MySQL
database, such as ASP or ColdFusion. The HTSQL – URL-based query method also ships with a
MySQL adapter, allowing direct interaction between a MySQL database and any web client via
structured URLs.

Features

MySQL is offered under two different editions: the open source MySQL Community
Server and the proprietary Enterprise Server. MySQL Enterprise Server is differentiated by a
series of proprietary extensions which install as server plug-in, but otherwise shares the version
numbering system and is built from the same code base.

Major features as available in MySQL 5.6:

 A broad subset of ANSI SQL 99, as well as extensions


 Cross-platform support
 Stored procedures, using a procedural language that closely adheres to SQL/PSM
 Triggers
 Cursors
 Updatable views
 Online DDL when using the InnoDB Storage Engine.
 Information schema
 Performance Schema
 A set of SQL Mode options to control runtime behavior, including a strict mode to better
adhere to SQL standards.
 X/Open XA distributed transaction processing (DTP) support; two phase commit as part
of this, using the default InnoDB storage engine
31
 Transactions with save points when using the default InnoDB Storage Engine. The NDB
Cluster Storage Engine also supports transactions.
 ACID compliance when using InnoDB and NDB Cluster Storage Engines
 SSL support
 Query caching
 Sub-SELECTs (i.e. nested SELECTs)
 Built-in Replication support (i.e. Master-Master Replication & Master-Slave Replication)
with one master per slave, many slaves per master. Multi-master replication is provided
in MySQL Cluster, and multi-master support can be added to unclustered configurations
using Galera Cluster.
 Full-text indexing and searching
 Embedded database library
 Unicode support
 Partitioned tables with pruning of partitions in optimizer
 Shared-nothing clustering through MySQL Cluster
 Multiple storage engines, allowing one to choose the one that is most effective for each
table in the application.
 Native storage engines InnoDB, MyISAM, Merge, Memory (heap), Federated, Archive,
CSV, Black hole, NDB Cluster.
 Commit grouping, gathering multiple transactions from multiple connections together to
increase the number of commits per second.

The developers release minor updates of the MySQL Server approximately every two
months. The sources can be obtained from MySQL's website or from MySQL's Bazaar
repository, both under the GPL license.

Limitations

Like other SQL databases, MySQL does not currently comply with the full SQL standard
for some of the implemented functionality, including foreign key references when using some
storage engines other than the default of InnoDB.

32
Up until MySQL 5.7, triggers are limited to one per action / timing, meaning that at most
one trigger can be defined to be executed after an INSERT operation, and one before INSERT
on the same table. No triggers can be defined on views.

MySQL, like most other transactional relational databases, is strongly limited by hard
disk performance. This is especially true in terms of write latency. Given the recent appearance
of very affordable consumer grade SATA interface solid-state drives that offer zero mechanical
latency, a fivefold speedup over even an eight drive RAID array can be had for a smaller
investment.

MySQL database's inbuilt functions like UNIX_TIMESTAMP () will return 0 after


03:14:07 UTC on 19 January 2038.

Deployment

MySQL can be built and installed manually from source code, but this can be tedious so
it is more commonly installed from a binary package unless special customizations are required.
On most Linux distributions the package management system can download and install MySQL
with minimal effort, though further configuration is often required to adjust security and
optimization settings.

Though MySQL began as a low-end alternative to more powerful proprietary databases,


it has gradually evolved to support higher-scale needs as well. It is still most commonly used in
small to medium scale single-server deployments, either as a component in a LAMP-based web
application or as a standalone database server. Much of MySQL's appeal originates in its relative
simplicity and ease of use, which is enabled by an ecosystem of open source tools such as
phpMyAdmin. In the medium range, MySQL can be scaled by deploying it on more powerful
hardware, such as a multi-processor server with gigabytes of memory.

There are however limits to how far performance can scale on a single server ('scaling
up'), so on larger scales, multi-server MySQL ('scaling out') deployments are required to provide
improved performance and reliability. A typical high-end configuration can include a powerful

33
master database which handles data write operations and is replicated to multiple slaves that
handle all read operations. The master server synchronizes continually with its slaves so in the
event of failure a slave can be promoted to become the new master, minimizing downtime.
Further improvements in performance can be achieved by caching the results from database
queries in memory using memcached, or breaking down a database into smaller chunks called
shards which can be spread across a number of distributed server clusters.

Backup

 File system snapshot or volume manager snapshot – backups are performed by using an
external tool provided by the operating system (such as LVM) or storage device, with
additional support from MySQL for ensuring consistency of such snapshots.
 mysqldump – a logical backup tool included with both community and enterprise editions
of MySQL. Supports backup from all storage engines.
 MySQL Enterprise Backup – a hot backup utility included as part of the MySQL
Enterprise subscription from Oracle. Offers native InnoDB hot backup, as well as backup
for other storage engines.
 XtraBackup – open source MySQL hot backup software. Some notable features include
hot, non-locking backups for InnoDB storage, incremental backups, streaming, parallel-
compressed backups, throttling based on the number of I/O operations per second, etc.

High availability

Ensuring high availability requires a certain amount of redundancy in the system. For
database systems, the redundancy traditionally takes the form of having a primary server acting
as a master, and using replication to keep secondaries available to take over in case the primary
fails. This means that the "server" that the application connects to is in reality a collection of
servers, not a single server. In a similar manner, if the application is using a sharded database, it
is in reality working with a collection of servers, not a single server. In this case, a collection of
servers is usually referred to as a farm.

34
One of the projects aiming to provide high availability for MySQL is MySQL Fabric, an
integrated system for managing a collection of MySQL servers, and a framework on top of
which high availability and database sharding is built. MySQL Fabric is open-source and is
intended to be extensible, easy to use, and to support procedure execution even in the presence of
failure, providing an execution model usually called resilient execution. MySQL client libraries
are extended so they are hiding the complexities of handling failover in the event of a server
failure, as well as correctly dispatching transactions to the shards. As of September 2013, there is
currently support for Fabric-aware versions of Connector/J, Connector/PHP, Connector/Python,
as well as some rudimentary support for Hibernate and Doctrine. As of May 2014, MySQL
Fabric is in the general availability stage of development.

Cloud deployment

MySQL can also be run on cloud computing platforms such as Amazon EC2. Listed below are
some common deployment models for MySQL on the cloud:

 Virtual Machine Image – cloud users can upload a machine image of their own with
MySQL installed, or use a ready-made machine image with an optimized installation of
MySQL on it, such as the one provided by Amazon EC2.
 MySQL as a Service – some cloud platforms offer MySQL "as a service". In this
configuration, application owners do not have to install and maintain the MySQL
database on their own. Instead, the database service provider takes responsibility for
installing and maintaining the database, and application owners pay according to their
usage. Notable cloud-based MySQL services are the Amazon Relational Database
Service; Rackspace; HP Converged Cloud; Heroku and Jelastic.
 Managed MySQL cloud hosting – the database is not offered as a service, but the cloud
provider hosts the database and manages it on the application owner's behalf. As of 2011,
of the major cloud providers, only Terremark and Rackspace offer managed hosting for
MySQL databases.

35
Community

The MySQL server software itself and the client libraries use dual-licensing distribution.
They are offered under GPL version 2, beginning from 28 June 2000 (which in 2009 has been
extended with a FLOSS License Exception) or to use a proprietary license.

Support can be obtained from the official manual. Free support additionally is available
in different IRC channels and forums. Oracle offers paid support via its MySQL Enterprise
products. They differ in the scope of services and in price. Additionally, a number of third party
organisations exist to provide support and services, including SkySQL Ab and Percona.

MySQL has received positive reviews, and reviewers noticed it "performs extremely well
in the average case." and that the "developer interfaces are there, and the documentation (not to
mention feedback in the real world via Web sites and the like) is very, very good". It has also
been tested to be a "fast, stable and true multi-user, multi-threaded sql database server".Related
projects

 Drizzle – a fork targeted at the web-infrastructure and cloud computing markets. The
developers of the product describe it as a "smaller, slimmer and (hopefully) faster version
of MySQL". As a result, many common MySQL features will be stripped out, including
stored procedures, query cache, prepared statements, views, and triggers. This is a partial
rewrite of the server that does not maintain compatibility with MySQL. However, Drizzle
made no new releases since May 2012.
 MariaDB – a community-developed fork of the MySQL database source code. The intent
also being to maintain high fidelity with MySQL, ensuring a "drop-in" replacement
capability with library binary equivalency and exact matching with MySQL APIs and
commands. It includes the XtraDB storage engine as a replacement for InnoDB.
 Percona Server – a fork of MySQL that includes the XtraDB storage engine. Its policy is
to deviate as little as possible from MySQL and remain fully compatible, while providing
new features, better performance, and additional instrumentation for analysis of
performance and usage.

36
 WebScaleSQL – A branch of MySQL 5.6 maintained by Face book, LinkedIn, Google
and Twitter.

History

MySQL was created by a Swedish company, MySQL AB, founded by David Ax mark,
Allan Larsson and Michael "Monty" Widenius. The first version of MySQL appeared on 23 May
1995. It was initially created for personal usage from mySQL based on the low-level language
ISAM, which the creators considered too slow and inflexible. They created a new SQL interface,
while keeping the same API as mySQL. By keeping the API consistent with the mySQL system,
many developers were able to use MySQL instead of the (proprietarily licensed) mSQL
antecedent.

Legal and acquisition impacts

On 15 June 2001, NuSphere sued MySQL AB, TcX DataKonsult AB and its original
authors Michael ("Monty") Widenius and David Ax mark in U.S District Court in Boston for
"breach of contract, tortious interference with third party contracts and relationships and unfair
competition".

In 2002, MySQL AB sued Progress NuSphere for copyright and trademark infringement
in United States district court. NuSphere had allegedly violated MySQL's copyright by linking
MySQL's GPL'ed code with NuSphere Gemini table without being in compliance with the
license. After a preliminary hearing before Judge Patti Saris on 27 February 2002, the parties
entered settlement talks and eventually settled. After the hearing, FSF commented that "Judge
Saris made clear that she sees the GNU GPL to be an enforceable and binding license."

In October 2005, Oracle Corporation acquired Innobase OY, the Finnish company that
developed the third-party InnoDB storage engine that allows MySQL to provide such
functionality as transactions and foreign keys. After the acquisition, an Oracle press release
mentioned that the contracts that make the company's software available to MySQL AB would
be due for renewal (and presumably renegotiation) sometime in 2006. During the MySQL Users

37
Conference in April 2006, MySQL issued a press release that confirmed that MySQL and
InfoBase OY agreed to a "multi-year" extension of their licensing agreement.

In February 2006, Oracle Corporation acquired Sleepy cat Software, makers of the
Berkeley DB, a database engine providing the basis for another MySQL storage engine. This had
little effect, as Berkeley DB was not widely used, and was dropped (due to lack of use) in
MySQL 5.1.12, a pre-GA release of MySQL 5.1 released in October 2006.

In April 2009, Oracle Corporation entered into an agreement to purchase Sun


Microsystems, then owners of MySQL copyright and trademark. Sun's board of directors
unanimously approved the deal; it was also approved by Sun's shareholders, and by the U.S.
government on 20 August 2009. On 14 December 2009, Oracle pledged to continue to enhance
MySQL as it had done for the previous four years.

A movement against Oracle's acquisition of MySQL, to "Save MySQL “from Oracle was
started by one of the MySQL founders, Monty Widenius. The petition of 50,000+ developers and
users called upon the European Commission to block approval of the acquisition. At the same
time, several Free Software opinion leaders (including Eben Moglen, Pamela Jones of Groklaw,
Jan Wildeboer and Carlo Piana, who also acted as co-counsel in the merger regulation
procedure) advocated for the unconditional approval of the merger. As part of the negotiations
with the European Commission, Oracle committed that MySQL server will continue until at least
2015 to use the dual-licensing strategy long used by MySQL AB, with proprietary and GPL
versions available. The antitrust of the EU had been "pressuring it to divest MySQL as a
condition for approval of the merger". But, as revealed by WikiLeaks, the US Department of
Justice and Antitrust, at the request of Oracle, pressured the EU to unconditionally approve the
merger. The European Commission eventually unconditionally approved Oracle's acquisition of
MySQL on 21 January 2010.

In January 2009, prior to Oracle's acquisition of MySQL, Monty Widenius started a GPL-
only fork, MariaDB. MariaDB is based on the same code base as MySQL server 5.1 and strives
to maintain compatibility with Oracle-provided versions.

38
Milestones

Notable milestones in MySQL development include:

 Original development of MySQL by Michael Widenius and David Ax mark beginning in


1994
 First internal release on 23 May 1995
 Version 3.19: End of 1996, from www.tcx.se
 Version 3.20: January 1997
 Windows version was released on 8 January 1998 for Windows 95 and NT
 Version 3.21: production release 1998, from www.mysql.com
 Version 3.22: alpha, beta from 1998
 Version 3.23: beta from June 2000, production release 22 January 2001
 Version 4.0: beta from August 2002, production release March 2003 (unions)
 Version 4.01: beta from August 2003, Jyoti adopts MySQL for database tracking
 Version 4.1: beta from June 2004, production release October 2004 (R-trees and B-trees,
sub queries, prepared statements)
 Version 5.0: beta from March 2005, production release October 2005 (cursors, stored
procedures, triggers, views, XA transactions)

The developer of the Federated Storage Engine states that "The Federated Storage Engine
is a proof-of-concept storage engine", but the main distributions of MySQL version 5.0
included it and turned it on by default. Documentation of some of the short-comings
appears in "MySQL Federated Tables: The Missing Manual". Sun Microsystems
acquired MySQL AB in 2008.

 Version 5.1: production release 27 November 2008 (event scheduler, partitioning, plugin
API, row-based replication, server log tables)

Version 5.1 contained 20 known crashing and wrong result bugs in addition to the 35
present in version 5.0 (almost all fixed as of release 5.1.51). MySQL 5.1 and 6.0-alpha

39
showed poor performance when used for data warehousing – partly due to its inability to
utilize multiple CPU cores for processing a single query.

 Oracle acquired Sun Microsystems on 27 January 2010.


 The day Oracle announced the purchase of Sun, Michael "Monty" Widenius forked
MySQL, launching MariaDB, and took a swathe of MySQL developers with him.
 MySQL Server 5.5 was generally available (as of December 2010). Enhancements and
features include:
o The default storage engine is InnoDB, which supports transactions and referential
integrity constraints.
o Improved InnoDB I/O subsystem
o Improved SMP support
o Semi synchronous replication.
o SIGNAL and RESIGNAL statement in compliance with the SQL standard.
o Support for supplementary Unicode character sets utf16, utf32, and utf8mb4.
o New options for user-defined partitioning.
 MySQL Server 6.0.11-alpha was announced on 22 May 2009 as the last release of the 6.0
line. Future MySQL Server development uses a New Release Model. Features developed
for 6.0 are being incorporated into future releases.
 MySQL 5.6 general availability was announced in February 2013. New features included
performance improvements to the query optimizer, higher transactional throughput in
InnoDB, new NoSQL-style me cached APIs, improvements to partitioning for querying
and managing very large tables, TIMESTAMP column type that correctly stores
milliseconds, improvements to replication, and better performance monitoring by
expanding the data available through the PERFORMANCE_SCHEMA. The InnoDB
storage engine also included support for full text search and improved group commit
performance.
 MySQL 5.7 Development Milestone 3 was released December 2013.

40
SYSTEM DESIGN

INPUT DESIGN

Input design is the process of converting user-originated inputs to a computer-


based format. Input design is one of the most expensive phases of the operation of computerized
system and is often the major problem of a system.

In the project, the input design is made in various web forms with various methods.
For example, in the user creation form, the empty username and password is not allowed. The
username if exists in the database, the input is considered to be invalid and is not accepted.
Likewise, during the login process, the username is a must and must be available in the user list
in the database. Then only login is allowed.

OUTPUT DESIGN

Output design generally refers to the results and information that are generated by
the system for many end-users; output is the main reason for developing the system and the basis
on which they evaluate the usefulness of the application.

In the project, the placed student details, company details, forum are the web
forms in which the output is available.

DATABASE DESIGN

The database design is a must for any application developed especially more for
the data store projects. Since the Logistic automation method involves retrieving the information
in the table and produced to the administrator, proper handling of the table is a must. In the
project, login table is designed to be unique in accepting the username and the length of the
username and password should be greater than zero. The different users view the data in different
format according to the privileges given.

Testing

41
Introduction

The most important phase in system development life cycle is system testing. The
number and nature of errors in a newly designed system depends on the system specifications
and the time frame given for the design.

A newly designed system should have all the subsystems working together, but in reality
each subsystems work independently. During this phase, all the subsystems are gathered into
one pool and tested to determine whether it meets the user requirements.

Testing is done at two level -Testing of individual modules and testing the entire system.
During the system testing, the system is used experimentally to ensure that the software will run
according to the specifications and in the way the user expects. Each test case is designed with
the intent of finding errors in the way the system will process it.

Testing plays a very critical role in determining the reliability and efficiency of software
and hence is a very important stage in software development. Software testing is done at
different levels. They are the unit testing and system testing which comprises of integration
testing and acceptance testing.

TYPES OF TESTING

Unit Testing

This is the first level of testing. The different modules are tested against the
specifications produced during the integration. This is done to test the internal logic of each
module. Those resulting from the interaction between modules are initially avoided. The input
received and output generated is also tested to see whether it falls in the expected range of
values. Unit testing is performed from the bottom up, starting with the smallest and lowest
modules and proceeding one at a time.

The units in a system are the modules and routines that are assembled and integrated to
perform a specific function. The programs are tested for correctness of logic applied and
42
detection of errors in coding. Each of the modules was tested and errors are rectified. They were
then found to function properly.

Integration Testing

In integration testing, the tested modules are combined into sub-systems, which are then
tested. The goal of integration testing to check whether the modules can be integrated properly
emphasizing on the interfaces between modules. The different modules were linked together and
integration testing done on them.

Validation Testing

The objective of the validation test is to tell the user about the validity and reliability of
the system. It verifies whether the system operates as specified and the integrity of
important data is maintained. User motivation is very important for the successful performance
of the system.

All the modules were tested individually using both test data and live data. After each
module was ascertained that it was working correctly and it had been "integrated" with the
system. Again the system was tested as a whole. We hold the system tested with different types
of users. The System Design, Data Flow Diagrams, procedures etc. were well documented so
that the system can be easily maintained and upgraded by any computer professional at a later

System Testing

The integration of each module in the system is checked during this level of testing. The
objective of system testing is to check if the software meets its requirements. System testing is
done to uncover errors that were not found in earlier tests. This includes forced system failures
and validation of total system as the user in the operational environment implements it. Under
this testing, low volumes of transactions are generally based on live data. This volume is
increased until the maximum level for each transactions type is reached. The total system is also
tested for recovery after various major failures to ensure that no data are lost during the
breakdown.

43
SYSTEM IMPLEMENTATION

Implementation is the process that actually yields the lowest-level system elements in the
system hierarchy (system breakdown structure). The system elements are made, bought, or
reused. Production involves the hardware fabrication processes of forming, removing, joining,
and finishing; or the software realization processes of coding and testing; or the operational
procedures development processes for operators' roles. If implementation involves a production
process, a manufacturing system which uses the established technical and management processes
may be required.

The purpose of the implementation process is to design and create (or fabricate) a system
element conforming to that element’s design properties and/or requirements. The element is
constructed employing appropriate technologies and industry practices. This process bridges the
system definition processes and the integration process.

System Implementation is the stage in the project where the theoretical design is turned
into a working system. The most critical stage is achieving a successful system and in giving
confidence on the new system for the user that it will work efficiently and effectively. The
existing system was long time process.

The proposed system was developed using PHP. The existing system caused long time
transmission process but the system developed now has a very good user-friendly tool, which has
a menu-based interface, graphical interface for the end user. After coding and testing, the project
is to be installed on the necessary system. The executable file is to be created and loaded in the
system. Again the code is tested in the installed system. Installing the developed code in system
in the form of executable file is implementation.

SYSTEM DEVELOPEMENT

A Systems Development Life Cycle (SDLC) adheres to important phases that are
essential for developers, such as planning, analysis, design, and implementation, and are
explained in the section below. A number of system development life cycle (SDLC) models have
44
been created: waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and
synchronize and stabilize. The oldest of these, and the best known, is the waterfall model: a
sequence of stages in which the output of each stage becomes the input for the next.

The waterfall model is a popular version of the systems development life cycle model for
software engineering. Often considered the classic approach to the systems development life
cycle, the waterfall model describes a development method that is linear and sequential.
Waterfall development has distinct goals for each phase of development. Imagine a waterfall on
the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun
its journey down the side of the mountain, it cannot turn back. It is the same with waterfall
development. Once a phase of development is completed, the development proceeds to the next
phase and there is no turning back.

The advantage of waterfall development is that it allows for departmentalization and


managerial control. A schedule can be set with deadlines for each stage of development and a
product can proceed through the development process like a car in a carwash, and theoretically,
be delivered on time. Development moves from concept, through design, implementation,
testing, installation, troubleshooting, and ends up at operation and maintenance. Each phase of
development proceeds in strict order, without any overlapping.

SCOPE FOR FUTURE ENHANCEMENT

There is scope for future development of this project. The world of computer fields is not
static; it is always subject to be dynamic. The technology which is famous today becomes
outdated the very next day. To keep abstract of technical improvements, the system may be
further refined. So, it is not concluded. Yet it will improve with further enhancements.

Enhancements can be done in an efficient manner. We can even update the same with
further modification establishment and can be integrated with minimal modification. Thus the
project is flexible and can be enhanced at anytime with more advanced features.

45
It is concluded that the application works well and satisfy the end users. The application
is tested very well and errors are properly debugged. The application is simultaneously accessed
from more than one system. Simultaneous login from more than one place is tested.

CONCLUSION

This system is user friendly so everyone can use easily. Proper documentation is
provided. The end user can easily understand how the whole system is implemented by going
through the documentation. The system is tested, implemented and the performance is found to
be satisfactory. All necessary output is generated. Thus, the project is completed successfully.

Further enhancements can be made to the application, so that the application functions
very attractive and useful manner than the present one. The speed of the transactions become
more enough now.

Bibliography

Textual Reference

 PHP book by Vaswani

Title: PHP: A BEGINNER'S GUIDE


Publisher: McGraw Hill
Publication Date: 2008

Learn how to build dynamic, data-driven Web applications using PHP. Covering
the latest release of this cross-platform, open-source scripting language, PHP: A
Beginner's Guide teaches you how to write basic PHP programs and enhance
them with more advanced features such as MySQL and SQLite database
integration, XML input, and third-party extensions. This fast-paced tutorial

46
provides one-stop coverage of software installation, language syntax and data
structures, flow control routines, built-in functions, and best practices.

 Beginning PHP5 by WROX.

Title: Beginning PHP5


Publisher: Wrox
Publication Date: 2004

Beginning PHP5 is a complete tutorial in PHP5's language features and


functionality, beginning with the basics and building up to the design and
construction of complex data-driven Web sites. Fully functioning applications are
developed through the course of the book. Other features of the book include
installation guide and troubleshooting tips, introduction to relational databases,
practical working examples and applications, and a detailed language reference.

 Informatics practices by Sumita Arora.

Title: Informatics Practices A Text Book For Class ...


Publisher: Dhanpat Rai & Co.
Publication Date: 2018

 Head First PHP & MySQL by Lynn Beighley and Michael Morrison(O’Reilly)

Title: Head First PHP MySQL: A Brain-Friendly Guide


Publisher: O'Reilly Media
Publication Date: 2009

47
HTML and CSS, Head First PHP & MySQL is the ultimate learning guide to
building dynamic, database-driven websites using PHP and MySQL. Packed with
real-world examples, this book teaches you all the essentials of server-side
programming, from the fundamentals of PHP and MySQL coding to advanced
topics such as form validation, session IDs, cookies, database queries and joins,
file I/O operations, content management, and more.

 PHP Objects, Patterns, and Practice by Matt Zandstra

Title: PHP 5 Objects, Patterns, and Practice


Publisher: Apress L. P.
Publication Date: 2005
Edition: 1st Edition.

PHP 5's object-oriented enhancements are among the most significant


improvements in the 10+ year history of the language. This book introduces you
to those features and the many opportunities they provide, as well as a number
of tools that will help you maximize development efforts.

The book begins with a broad overview of PHP 5's object-oriented features,
introducing key topics like class declaration, object instantiation, inheritance,
and method and property encapsulation. You’ll also learn about advanced topics
including static methods and properties, abstract classes, interfaces, exception
handling, object cloning, and more. You’ll also benefit from an extensive
discussion regarding object-oriented design best practices.

 PHP and MySQL Web Development by Luke Welling

Title: PHP and MySQL Web Development


Publisher: Addison-Wesley Professional
Publication Date: 2008
Edition: 4th Edition

48
PHP and MySQL are popular open-source technologies that are ideal for quickly
developing database-driven Web applications. PHP is a powerful scripting
language designed to enable developers to create highly featured Web
applications quickly, and MySQL is a fast, reliable database that integrates well
with PHP and is suited for dynamic Internet-based applications.
PHP and MySQL Web Development shows how to use these tools together to
produce effective, interactive Web applications. It clearly describes the basics of
the PHP language, explains how to set up and work with a MySQL database, and
then shows how to use PHP to interact with the database and the server.

 PHP Object-Oriented Solutions by David Powers

Title: PHP Object-Oriented Solutions


Publisher: Apress
Publication Date: 2008

With the surge of popularity of PHP 5, object-oriented programming is now an


important consideration for PHP developers. This version-neutral book is a gentle
introduction to object-oriented programming (OOP) that won't overburden you
with complex theory. It teaches you the essential basics of OOP that you'll need
to know before moving onto a more advanced level, and includes a series of
prepackaged scripts that you can incorporate into your existing sites with the
minimum of effort.

It shows how object-oriented programming can be used to create reusable and


portable code by walking you through a series of simple projects. The projects
feature the sorts of things developers run up against every day, and include a
validator for filtering user input, a simple Date class that avoids the need to
remember all the esoteric format codes in PHP, and an XML generator.

49
 Modern PHP: New Features and Good Practice by Josh Lockhart

Title: Modern PHP: New Features and Good Practices


Publisher: O'Reilly Media
Publication Date: 2015

PHP is experiencing a renaissance, though it may be difficult to tell with all of


the outdated PHP tutorials online. With this practical guide, you’ll learn how PHP
has become a full-featured, mature language with object-orientation,
namespaces, and a growing collection of reusable component libraries.Author
Josh Lockhart—creator of PHP The Right Way, a popular initiative to encourage
PHP best practices—reveals these new language features in action. You’ll learn
best practices for application architecture and planning, databases, security,
testing, debugging, and deployment. If you have a basic understanding of PHP
and want to bolster your skills, this is your book.

 Learning PHP Design Patterns by William Sanders

Title: Learning PHP Design Patterns


Publisher: O'Reilly Media, Incorporated
Publication Date: 2013
Edition: 1st Edition.

Build server-side applications more efficiently—and improve your PHP


programming skills in the process—by learning how to use design patterns in
your code. This book shows you how to apply several object-oriented patterns
through simple examples, and demonstrates many of them in full-fledged
working applications.Learn how these reusable patterns help you solve complex
problems, organize object-oriented code, and revise a big project by only
changing small parts. With Learning PHP Design Patterns, you’ll learn how to
adopt a more sophisticated programming style and dramatically reduce
development time.

50
 PHP 5 Objects, Patterns, and Practice by Matt Zandstra

Title: PHP 5 Objects, Patterns, and Practice


Publisher: Apress L. P.
Publication Date: 2005
Edition: 1st Edition.

PHP 5's object-oriented enhancements are among the most significant


improvements in the 10+ year history of the language. This book introduces you
to those features and the many opportunities they provide, as well as a number
of tools that will help you maximize development efforts.

The book begins with a broad overview of PHP 5's object-oriented features,
introducing key topics like class declaration, object instantiation, inheritance,
and method and property encapsulation. You’ll also learn about advanced topics
including static methods and properties, abstract classes, interfaces, exception
handling, object cloning, and more. You’ll also benefit from an extensive
discussion regarding object-oriented design best practices.

 PHP for the Web: Visual QuickStart Guide by Larry Ullman

Title: PHP for the Web: Visual QuickStart Guide


Publisher: Peachpit Press
Publication Date: 2011
Edition: 4th Edition

With PHP for the World Wide Web, Fourth Edition: Visual QuickStart Guide,
readers can start from the beginning to get a tour of the programming language,
or look up specific tasks to learn just what they need to know. This task-based

51
visual reference guide uses step-by-step instructions and plenty of screenshots
to teach beginning and intermediate users this popular open-source scripting
language. Leading technology author Larry Ullman guides readers through the
latest developments including use and awareness of HTML5 with PHP. Other
addressed changes include removal of outdated functions and more efficient
ways to tackle common needs.

Both beginning users, who want a thorough introduction to the technology, and
more intermediate users, who are looking for a convenient reference, will find
what they need here--in straightforward language and through readily accessible
examples.

Online Reference:
 ( www.wikipedia.com )

 ( www.w3schools.com )

 ( http://www.phpreferencebook.com/ )

 ( http://www.tizag.com/phpT/ )

 ( http://www.phpbuddy.com/ )

 ( http://www.php.net/ )

SDLC
Software Development Life Cycle (SDLC) is a process used by the software industry to design,
develop and test high quality softwares. The SDLC aims to produce a high-quality software that
meets or exceeds customer expectations, reaches completion within times and cost estimates.

52
 SDLC is the acronym of Software Development Life Cycle.

 It is also called as Software Development Process


.
 SDLC is a framework defining tasks performed at each step in the software
development process.

 ISO/IEC 12207 is an international standard for software life-cycle processes. It


aims to be the standard that defines all the tasks required for developing and
maintaining software.

What is SDLC?
SDLC is a process followed for a software project, within a software organization. It consists of
a detailed plan describing how to develop, maintain, replace and alter or enhance specific
software. The life cycle defines a methodology for improving the quality of software and the
overall development process.
The following figure is a graphical representation of the various stages of a typical SDLC.

53
A typical Software Development Life Cycle consists of the following stages −
Stage 1: Planning and Requirement Analysis
Requirement analysis is the most important and fundamental stage in SDLC. It is performed by
the senior members of the team with inputs from the customer, the sales department, market
surveys and domain experts in the industry. This information is then used to plan the basic
project approach and to conduct product feasibility study in the economical, operational and
technical areas.
Planning for the quality assurance requirements and identification of the risks associated with the
project is also done in the planning stage. The outcome of the technical feasibility study is to
define the various technical approaches that can be followed to implement the project
successfully with minimum risks.
Stage 2: Defining Requirements
Once the requirement analysis is done the next step is to clearly define and document the product
requirements and get them approved from the customer or the market analysts. This is done
through an SRS (Software Requirement Specification) document which consists of all the
product requirements to be designed and developed during the project life cycle.

54
Stage 3: Designing the Product Architecture
SRS is the reference for product architects to come out with the best architecture for the product
to be developed. Based on the requirements specified in SRS, usually more than one design
approach for the product architecture is proposed and documented in a DDS - Design Document
Specification.
This DDS is reviewed by all the important stakeholders and based on various parameters as risk
assessment, product robustness, design modularity, budget and time constraints, the best design
approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along with its
communication and data flow representation with the external and third party modules (if any).
The internal design of all the modules of the proposed architecture should be clearly defined with
the minutest of the details in DDS.
Stage 4: Building or Developing the Product
In this stage of SDLC the actual development starts and the product is built. The programming
code is generated as per DDS during this stage. If the design is performed in a detailed and
organized manner, code generation can be accomplished without much hassle.
Developers must follow the coding guidelines defined by their organization and programming
tools like compilers, interpreters, debuggers, etc. are used to generate the code. Different high
level programming languages such as C, C++, Pascal, Java and PHP are used for coding. The
programming language is chosen with respect to the type of software being developed.
Stage 5: Testing the Product
This stage is usually a subset of all the stages as in the modern SDLC models, the testing
activities are mostly involved in all the stages of SDLC. However, this stage refers to the testing
only stage of the product where product defects are reported, tracked, fixed and retested, until the
product reaches the quality standards defined in the SRS.
Stage 6: Deployment in the Market and Maintenance
Once the product is tested and ready to be deployed it is released formally in the appropriate
market. Sometimes product deployment happens in stages as per the business strategy of that
organization. The product may first be released in a limited segment and tested in the real
business environment (UAT- User acceptance testing).
Then based on the feedback, the product may be released as it is or with suggested enhancements
in the targeting market segment. After the product is released in the market, its maintenance is
done for the existing customer base.

SDLC Models
There are various software development life cycle models defined and designed which are
followed during the software development process. These models are also referred as Software
55
Development Process Models". Each process model follows a Series of steps unique to its type
to ensure success in the process of software development.
Following are the most important and popular SDLC models followed in the industry −

 Waterfall Model
 Iterative Model
 Spiral Model
 V-Model
 Big Bang Model

Agile Model
The Agile SDLC model separates the product into cycles and delivers a working product
very quickly. This methodology produces a succession of releases. Testing of each release
feeds back info that’s incorporated into the next version. According to Robert Half, the
drawback of this model is that the heavy emphasis on customer interaction can lead the
project in the wrong direction in some cases.

 TABLES

user
Job details

56
College interview forun

57
58
59
OUTPUT

HOME

User Login

60
61
62
Student Registration

63
Admin login

64
Company entry

65
66
SAMPLE CODING

<?php

include('header.php');

?>

<div align="center">

<script type="text/javascript">

$(document).ready(function(){

$("#register_form").validate();

});

</script>

<form action="register.php" name="register_form" id="register_form" method="post">

<table border="0" cellspacing="4" cellspadding="4" bgcolor="White"


class="displaycontent" width="500">

<caption></caption>

<tr>

<th colspan="2"> Register Your Details</th>

<br>

</tr>

<tr>

<td class="col">Name:</td>

67
<td><input type="text" name="first_name" value="" /></td>

</tr>

<tr>

<td class="col">User ID:</td>

<td><input type="text" name="U_name" value="" class="required"


/></td>

</tr>

<tr>

<td class="col">Email:</td>

<td><input type="text" name="email_id" value="" class="required email"


/></td>

</tr>

<tr>

<td class="col">Password:</td>

<td><input type="password" name="password" value="" class="required"


/></td>

</tr>

<tr>

<td class="col">Address:</td>

<td><input type="text" name="address" value="" class="required"


/></td>

68
</tr>

<tr>

<td class="col">City</td>

<td><input type="text" name="city" value="" class="required" /></td>

</tr>

<tr>

<td class="col" >state :</td>

<td><input type="text" class="required" name="state" value="" /></td>

</tr>

<tr>

<td class="col" >Country:</td>

<td><input type="text" class="required" name="country" value=""


/></td>

</tr>

<tr>

<td class="col" >Mobile:</td>

<td><input type="text" class="required" onkeypress="return


numbers(event);" name="mobile" value="" /></td>

</tr>

<tr>

<td class="col">Phone:</td>

69
<td><input type="text" class="required" onkeypress="return
numbers(event);" name="phone" value="" /></td>

</tr>

<tr>

<td class="col">College:</td>

<td><input type="text" class="required" name="colle" value="" /></td>

</tr>

<tr>

<td>&nbsp;</td>

<td >

<input type="submit" name="register" value="Register" />

<input type="Reset" value="Reset" />

</td>

</tr>

</table>

<center>

<img src="images/url.jpg">

<br>

&nbsp;&nbsp;&nbsp<a href="login.php">BACK</a>

</center>

</form>

70
</div>

<?php

include_once("config/config.php");

if(isset($_POST['register'])){

if($_POST['first_name']=="" || $_POST['U_name']=="" ||
$_POST['email_id']=="" || $_POST['password']=="" || $_POST['address']=="" )

echo '<script> alert("PLEASE FILL THE DETAILS");</script>';

else

$query = "INSERT INTO `tab_user` (`first_name`, `U_name`, `email_id`,


`password`, `address`, `city`, `state`, `country`, `mobile`, `phone`,`College`)";

$query .= " VALUES ('".$_POST['first_name']."', '".$_POST['U_name']."', '".


$_POST['email_id']."', '".$_POST['password']."', '";

$query .= $_POST['address']."', '".$_POST['city']."', '".$_POST['state']."', '".


$_POST['country']."', '";

$query .= $_POST['mobile']."', '".$_POST['phone']."', '".$_POST['colle']."')";

echo '<script> alert("PREGISTERD SUCCESSFULLY");</script>';

// echo $query;exit;

71
if(mysql_query($query)){

echo 'REGISTERD SUCCESSFULLY';

else{

echo 'NOT REGISTERD';

header("location:register.php");

exit;

?>

<?php

include('footer.php');

?>

<?php

include_once("config/config.php");

include_once("Adminheader.php");

error_reporting(0);

mysql_connect("localhost","root","") or die(mysql_error());

mysql_select_db("placement") or die(mysql_error());
72
$query = "select * from tab_user";

$result = mysql_query($query) or die(mysql_error());

$result = mysql_query($query) or die(mysql_error())

?>

<div align="center">

<form action="Viewuser.php" name="Viewuser" class="row" method="post">

<h2> User Details </h2>

<center >

<table border="2" cellspacing="6" class="displaycontent" width="800"


style="border:10px solid Darkblue;" align="center">

<tr>

<th bgcolor=Orange><font color=white size=2>Full


name</font></th>

<th bgcolor=Orange><font color=white size=2>User


name</font></th>

<th bgcolor=Orange><font color=white size=2>Email_id


</font></th>

<th bgcolor=Orange><font color=white size=2>Address


</font></th>

<th bgcolor=Orange><font color=white size=2>City</font></th>

<th bgcolor=Orange><font color=white size=2>State </font></td>

<th bgcolor=Orange><font color=white


size=2>Country</font></th>
73
<th bgcolor=Orange><font color=white size=2>Mobile</font></th>

</tr>

<?php

while($row=mysql_fetch_array($result))

?>

<tr>

<td bgcolor=white><font color=#000000 size=2><?php echo


$row['first_name']; ?></font></td>

<td bgcolor=white><font color=#000000 size=2><?php echo $row['U_name']; ?


></font></td>

<td bgcolor=white><font color=#000000 size=2><?php echo


$row['email_id']; ?></font></td>

<td bgcolor=white><font color=#000000 size=2><?php echo


$row['address']; ?></font></td>

<td bgcolor=white><font color=#000000 size=2><?php echo


$row['city']; ?></font></td>

<td bgcolor=white><font color=#000000 size=2><?php echo $row['state'];


?></font></td>

<td bgcolor=white><font color=#000000 size=2><?php echo


$row['country']; ?></font></td>

<td bgcolor=white><font color=#000000 size=2><?php echo $row['mobile']; ?


></font></td>

74
</tr>

<?php

?>

</table>

</form>

</div>

<?php include_once("footer.php")?>

</div> <!-- End row -->

</div>

</div>

75

You might also like