Pages

Monday, 16 July 2012

SYNOPSIS


                                                             INDEX                             
        
            ACKNOWLEDGEMENT                                                                                           CERTIFICATE                                                                  

PART – I (ABOUT TOOLS PROJECT)
MISSION AND AIMS                                               
COMMITTEE MEMBER’S LIST                                               
INTRODUCTION TO TOOLS PROJECT                                      
ACHIEVEMENTS          

PART II (ABOUT FRONT-END AND BACK-END)        
INTRODUCTION TO PHP
INTRODUCTION TO MY SQL
HARDWARE AND SOFTWARE REQUIREMENTS

PART – III (ABOUT PROJECT)
 SYSTEM DEVELOPMENT LIFE CYCLE                          
 LIMITATIONS AND ADVANTAGES OF PROJECT    
 DATA FLOW DIAGRAMS                                                  
 DATABASE DESIGNS                                                          
ABOUT FORMS                                                                                  ABOUT REPORTS                                                                  ABOUT TABLES                                                                      
OUTPUT AND CODING                                                                   
REFERENCE                                                                             







ACKNOWLEDGEMENT


We have found this golden chance to acknowledge all those people who had blessed, Encouraged and supported us technically and normally and  through all the phases of this project.

There are many people who deserve acknowledgement and gratitude for their contribution to the development and completion of this project.

We would like to express our sincere thanks to my project supervisors
Mr.Tarun Kumar Lakhanpal for his constant help and encouragement in our project.

We also thank all our classmates and friends for their valuable suggestions and help during the project work.    



CERTIFICATE

This is to certified that Project on Mail Server “TOOLS PROJECT” has been developed and implemented by Janu Bajaj(College Roll No.105326) students of BTech-II GNDEC,Ludhiana .This Project is not entitled to another university or college.


 


                                          





 














I first want to motivate this talk by discussing why we chose email as a research target. There are several reasons. First is that mail is important. The use of large scale email service are rapidly expanding these days, and we see a real demand here..
The next reason is that mail is a difficult problem, especially compared to a typical web service, which has been studied very extensively. Unlike simple web, mail is a type of application that is more write intensive, and has lower access locality. These properties make it difficult to use techniques, such as proxies, that are effective in scaling we services.
On the other hand, mail turns out to be easier than traditional data storage services such as distribute file systems or data base services.  First, mail has a well defined and  narrow API, which is a message send and receive rather than a generic byte read/write. Also, the mail workload has large inherent parallelism, so we can scale the system without worrying much about access conflicts. Finally, consistency requirement for mail is fairly weak. We experience delay in mail delivery or duplicate messages all so often. To summarize, the service requirements for mail sits somewhere between web and database, and we believed we could come up with a better architecture by not binding ourselves to either web or database.

 

















The goal of the project is to build a very large scale email service using just a cheap commodity hardware. When we say large, today’s large mail sites, such as AOL or hotmail handles about 100 million messages per day, and given that Internet is still growing rapidly, we can expect an order of magnitude growth in the scale of email servers. That’s the area we target, about 1 billion messages per day.
The key word in our project is to “scale”, and we define the work along three axes. First, of course, we need the system performance to scale. Not only that, we need to scale in terms of managing. We expect the mail traffic to constantly grow, and therefore the mail server needs to grow continuously as well.Our decision to use commodity hardware makes the system more prone to component failures. Thus, we want the system to survive gracefully various types of failures, including multiple node failures and network partitions.



                                  
                                     GOALS
Availability   Manageability  Performance

            


          Availability

                       
Goals:
Maintain function after failures
React quickly to changes regardless of cluster size
Graceful performance degradation / improvement
Strategy:  Two complementary mechanisms
Hard state: email messages, user profile
          Þ Optimistic fine-grain replication
Soft state: user map, mail map        
          Þ Reconstruction after membership change









Now our first issue is how we scale performance linearly with the cluster size, and the strategy is to partition data management responsibility uniformly among nodes to avoid creating hot spots, and to make the partition very fine grain to further reduce the chance of creating hot spots.
I actually already described the data structures such as user map and mail map that achieves these goals, so I don’t repeat them. I’ll just show you a graph tells  how our design scales in practice.














Tools Project
The responsibility for defining the project scope is often assumed by the project manager. He is likely to employ a tool—like a Work Breakdown Structure (WBS)— to define the deliverables, such as requirements specifications, design plans, source code modules and training delivery. The problem with a WBS is that it doesn't provide a clear enough picture of the functional requirements, and as we all know, "the devil is in the details." Project managers must focus on the broad picture, and should rely on a business analyst to focus on the requirements scope: Who will use the system? What do they need it to do? What information is needed to do it?
Today's business analysts are equipped with two important tools for defining the project scope requirements: context diagrams and use case models. The first thing a business analyst should do when assigned to a project is to confirm that these two models exist, and have been approved and accepted by the stakeholders. If they don’' exist, or haven’t been approved, the business analyst should tackle these before starting detailed business system analysis.
A project scope, or project scope statement, is a tool used to describe the major deliverables of a project including the key milestones, high level requirements, assumptions, and constraints. The project scope statement is a useful tool for future decision making when new change requests are considered to modify the project scope. It also defines the boundaries of a given project and clarifies what deliverables are in and out of scope. The following sections describe a project scope statement and show you how to use MatchWare MindView to create a project scope statement.








CATEGORIES IN TOOLS PROJECT…….
                          Power Tools

Electrical Drill                                                                                    Marble Cutter
image                                                         image                                  
                                
                                    Air Tools      
Air Polisher
                                                                                    Air Hammer     
                                                                                                                  
image                            image


                                  Spare Parts    

Bearing for Power Tools Pad                                            
                                                                                              Polisher
image                  image

                                                    




                                                 
                                                    Accessories

  Twist Drill Bit                                                                                                                                                                                                                    
                                                                                  Drill Bits                                                                                                                                    
image                                                                 image                              

                                                                                    
                                                                  










                     







                         PART-II
(About Front-end and Back-end)













ABOUT   FRONT-END   AND    BACK-END

 

 

 

INTRODUCTION TO PHP


PHP

PHP
Appeared in
1995 (1995)[1]
Designed by
The PHP Group
5.3.4 (December 10, 2010; 20 days ago (2010-12-10))
Influenced by
Influenced
Implementation language
C
.php, .phtml .php5 .phps









PHP: Hypertext Preprocessor is a widely used, general-purpose scripting language that was originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document. As a general-purpose programming language, PHP code is processed by an interpreter application in command-line mode performing desired operating system operations and producing program output on its standard output channel. It may also function as a graphical application. PHP is available as a processor for most modern web servers and as a standalone interpreter on most operating systems and computing platforms.
PHP was originally created by Rasmus Lerdorf in 1995[1][2] and has been in continuous development ever since. The main implementation of PHP is now produced by the PHP Group and serves as the de facto standard for PHP as there is no formal specification.[3] PHP is free software released under the PHP License.










Interprets the php code
 
<HTML>
<?php PHP code ?>
</HTML>

 

<HTML>
<B>Hello</B>
</HTML>

 
      
                                           


                                    





                                     HISTORY

 




Rasmus Lerdorf, who wrote the original Common Gateway Interface component, and Andi Gutmans and Zeev Suraski, who rewrote the parser that formed PHP 3
PHP originally stood for personal home page.[3] Its development began in 1994 when the Danish/Greenlandic programmer Rasmus Lerdorf initially created a set of Perl scripts he called 'Personal Home Page Tools' to maintain his personal homepage, including tasks such as displaying his résumé and recording how much traffic his page was receiving.[3][4][5]
He rewrote these scripts as C programming language Common Gateway Interface (CGI) binaries, extending 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 released PHP/FI as 'Personal Home Page Tools (PHP Tools) version 1.0' publicly on June 8, 1995, to accelerate bug location and improve the code.[6] This release already had the basic functionality that PHP has today. This included Perl-like variables, form handling, and the ability to embed HTML. The syntax was similar to Perl but was more limited and simpler, although less consistent.[3] A development team began to form and, after months of work and beta testing, officially released PHP/FI 2 in November 1997.
Zeev Suraski and Andi Gutmans, two Israeli developers at the Technion IIT, rewrote the parser in 1997 and formed the base of PHP 3, changing the language's name to the recursive initialism PHP: Hypertext Preprocessor.[3] 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.[7] They also founded Zend Technologies in Ramat Gan, Israel.[3]
On May 22, 2000, PHP 4, powered by the Zend Engine 1.0, was released.[3] As of August 2008 this branch is up to version 4.4.9. PHP 4 is no longer under development nor will any security updates be released.[8][9]
On July 13, 2004, PHP 5 was released, powered by the new Zend Engine II.[3] 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.[10] In 2008 PHP 5 became the only stable version under development. Late static binding had been missing from PHP and was added in version 5.3.[11][12]
A new major version has been under development alongside PHP 5 for several years. This version was originally planned to be released as PHP 6 as a result of its significant changes, which included plans for full Unicode support. However, Unicode support took developers much longer to implement than originally thought, and the decision was made in March 2010[13] to move the project to a branch, with features still under development moved to a trunk.
Changes in the new code include the removal of register_globals,[14] magic quotes, and safe mode.[8][15] The reason for the removals was that register_globals had given way to security holes, and the use of magic quotes had an unpredictable nature, and was best avoided. Instead, to escape characters, magic quotes may be replaced with the addslashes() function, or more appropriately an escape mechanism specific to the database vendor itself like mysql_real_escape_string() for MySQL. Functions that will be removed in future versions and have been deprecated in PHP 5.3 will produce a warning if used.[16]
Many high-profile open-source projects ceased to support PHP 4 in new code as of February 5, 2008, because of the GoPHP5 initiative,[17] provided by a consortium of PHP developers promoting the transition from PHP 4 to PHP 5.[18][19]
PHP currently does not have native support for Unicode or multibyte strings; Unicode support is under development for a future version of PHP and will allow strings as well as class, method, and function names to contain non-ASCII characters.[20][21]
PHP interpreters are available on both 32-bit and 64-bit operating systems, but on Microsoft Windows the only official distribution is a 32-bit implementation, requiring Windows 32-bit compatibility mode while using Internet Information Services (IIS) on a 64-bit Windows platform. As of PHP 5.3.0, experimental 64-bit versions are available for MS Windows.[22]

 Licensing

PHP is free software released under the PHP License, which insists that:
 4. 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"
















Meaning
Red
Release no longer supported
Green
Release still supported
Blue
Future release




Major version
Minor version
Release date
Notes
1
1.0.0
1995-06-08
Officially called "Personal Home Page Tools (PHP Tools)". This is the first use of the name "PHP".[3]
2
2.0.0
1997-11-01
Considered by its creator as the "fastest and simplest tool" for creating dynamic web pages.[3]
3
3.0.0
1998-06-06
Development moves from one person to multiple developers. Zeev Suraski and Andi Gutmans rewrite the base for this version.[3]
4
4.0.0
2000-05-22
Added more advanced two-stage parse/execute tag-parsing system called the Zend engine.[25]
4.1.0
2001-12-10
Introduced 'superglobals' ($_GET, $_POST, $_SESSION, etc.)[25]
4.2.0
2002-04-22
Disabled register_globals by default. Data received over the network is not inserted directly into the global namespace anymore, closing possible security holes in applications.[25]
4.3.0
2002-12-27
Introduced the CLI, in addition to the CGI.[25][26]
4.4.0
2005-07-11
Added man pages for phpize and php-config scripts.[25]
4.4.2
2006-01-13
Various fixes as per the reference.[25]
4.4.8
2008-01-03
Several security enhancements and bug fixes. Was to be the end of life release for PHP 4. Security updates only until 2008-08-08, if necessary.[27]
4.4.9
2008-08-07
More security enhancements and bug fixes. The last release of the PHP 4.4 series.[28][29]
5
5.0.0
2004-07-13
Zend Engine II with a new object model.[30]
5.1.0
2005-11-24
Performance improvements with introduction of compiler variables in re-engineered PHP Engine.[30]
5.2.0
2006-11-02
Enabled the filter extension by default. Native JSON support.[30]
5.2.11
2009-09-16
Bug and security fixes.
5.2.12
2009-12-17
Over 60 bug fixes, including 5 security fixes.
5.2.13
2010-02-25
Bug and security fixes.
5.2.14
2010-07-22
Bug and security fixes.
5.2.15
2010-12-10
Bug and security fixes.[31]
5.2.16
2010-12-16
The last release of PHP 5.2 series. Corrects some regressions introduced in PHP 5.2.15.[32]
5.3.0
2009-06-30
Namespace support; Late static bindings, Jump label (limited goto), Native closures, Native PHP archives (phar), garbage collection for circular references, improved Windows support, sqlite3, mysqlnd as a replacement for libmysql as underlying library for the extensions that work with MySQL, fileinfo as a replacement for mime_magic for better MIME support, the Internationalization extension, and deprecation of ereg extension.
5.3.1
2009-11-19
Over 100 bug fixes, some of which were security fixes as well.
5.3.2
2010-03-04
Includes a large number of bug fixes.
5.3.3
2010-07-22
Mainly bug and security fixes; FPM SAPI.
5.3.4
2010-12-10
Mainly bug and security fixes; improvements to FPM SAPI.
php-trunk-dev
 ?.?
No date set
Removed items: 'register_globals', 'safe_mode', 'allow_call_time_pass_reference', session_register(), session_unregister() and session_is_registered() functions
New features: traits, array dereferencing, closure $this support, JsonSerializable interface




















 



 

Usage

PHP is a general-purpose scripting language that is especially suited to server-side web development where 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. It can also be used for command-line scripting and client-side 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). 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.[33]
PHP primarily acts as a filter,[34] taking input from a file or stream containing text and/or PHP instructions and outputs another stream of data; most commonly the output will be HTML. Since PHP 4, the PHP parser compiles input to produce bytecode for processing by the Zend Engine, giving improved performance over its interpreter predecessor.[35]
Originally designed to create dynamic web pages, PHP now focuses mainly on server-side scripting,[36] 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,[37] and mod_perl. PHP has also attracted the development of many frameworks that provide building blocks and a design structure to promote rapid application development (RAD). Some of these include CakePHP, Symfony, CodeIgniter, 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 or Perl or some combination of the three. WAMP packages (Windows/ Apache/ MySQL / PHP) and MAMP packages (Macintosh / Apache / MySQL / PHP) are also available.
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.[38] PHP is used as server-side programming language on 75% of all web servers.[39] Significant websites are written in PHP including the user-facing portion of Facebook,[40] Wikipedia (MediaWiki),[41] Digg,[42] Joomla, eZ Publish, WordPress,[43] Drupal [44] and Moodle.[45]







 

 

Security

The National Vulnerability Database maintains a list of vulnerabilities found in computer software. The overall proportion of PHP-related vulnerabilities on the database amounted to: 20% in 2004, 28% in 2005, 43% in 2006, 36% in 2007, 35% in 2008, and 30% in 2009.[46] Most of these PHP-related vulnerabilities can be exploited remotely: they allow attackers to steal or destroy data from data sources linked to the webserver (such as an SQL database), send spam or contribute to DoS attacks using malware, which itself can be installed on the vulnerable servers.
These vulnerabilities are caused mostly by not following best practice programming rules: technical security flaws of the language itself or of its core libraries are not frequent (23 in 2008, about 1% of the total).[47][48] Recognizing that programmers cannot be trusted, some languages include taint checking to detect automatically the lack of input validation which induces many issues. Such a feature is being developed for PHP,[49] but its inclusion in a release has been rejected several times in the past.[50][51]
Hosting PHP applications on a server requires a careful and constant attention to deal with these security risks.[52] There are advanced protection patches such as Suhosin and Hardening-Patch, especially designed for web hosting environments.[53]






Syntax

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>PHP Test</title>
  </head>
  <body>
  <?php
  echo 'Hello World';
  /* echo("Hello World"); works as well, although echo isn't a
  function, but a language construct. In some cases, such
  as when multiple parameters are passed to echo, parameters
  cannot be enclosed in parentheses. */
  ?>
  </body>
</html>









PHP code embedded within HTML code
PHP only parses code within its delimiters. Anything outside its delimiters is sent directly to the output and is not processed by PHP (although non-PHP text is still subject to control structures described within 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 %>. While short delimiters are used, they make script files less portable as support for them can be disabled in the PHP configuration, and so they are discouraged.[54] The purpose of all these delimiters is to separate PHP code from non-PHP code, including HTML.[55]
The first form of delimiters, <?php and ?>, in XHTML and other XML documents, creates correctly formed XML 'processing instructions'.[56] 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. Unlike function and class names, variable names are case sensitive. Both double-quoted ("") and heredoc strings allow the ability to embed a variable's value into the string.[57] PHP treats newlines as whitespace in the manner of a free-form language (except when inside string quotes), and statements are terminated by a semicolon.[58] PHP has three types of comment syntax: /* */ marks block and inline comments; // as well as # are used for one-line comments.[59] 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++, 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.[60] Integer variables can be assigned using decimal (positive and negative), octal, and hexadecimal 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.[61] 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++.[61] The null data type represents a variable that has no value. The only value in the null data type is NULL.[61] 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.[61] 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 and values, and the two can be intermingled.[61] PHP also supports strings, which can be used with single quotes, double quotes, or heredoc syntax.[62]
The Standard PHP Library (SPL) attempts to solve standard problems and implements efficient data access interfaces and classes.[63]

Functions

PHP has hundreds of base functions and thousands more via extensions. These functions are well documented on the PHP site; however, the built-in library has a wide variety of naming conventions and inconsistencies[64]. PHP currently has no functions for thread programming, although it does support multiprocess programming on POSIX systems.[65]
You can create your own functions, like this:
function myFunction() {
    return 'Tyler';
}
 
echo 'My name is ' . myFunction() . '!';






 


PHP 5.2 and earlier

Functions are not first-class functions and can only be referenced by their name, directly or dynamically by a variable containing the name of the function.[66] User-defined functions can be created at any time without being prototyped.[66] 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 exception of zero argument class constructor functions called with the PHP new operator, where parentheses are optional. PHP supports quasi-anonymous functions through the create_function() function, although they are not true anonymous functions because anonymous functions are nameless, but functions can only be referenced by name, or indirectly through a variable $function_name();, in PHP.[66]


PHP 5.3 and newer

PHP gained support for closures. True anonymous functions are supported using the following syntax:
function getAdder($x) {
 
    return function ($y) use ($x) {
        return $x + $y;
    };
}
 
$adder = getAdder(8);
echo $adder(2); // prints "10"
Here, the getAdder() function creates a closure using the parameter $x (the keyword use imports a variable from the lexical context), which takes an additional argument $y and returns it to the caller. Such a function is a first class object, that means, it can be stored, passed as a parameter to other functions, etc. For more details see Lambda functions and closures RFC.
The goto flow control statement is used as follows:
function lock() {
    $file = fopen('file.txt', 'r+');
    retry:
    if (!flock($file, LOCK_EX)) {
        goto retry;
    }
    fwrite($file, 'Success!');
    fclose($file);
    return 0;
}
When lock() is called, PHP opens a file and tries to lock it. retry:, the target label, defines the point to which execution should return if flock() is unsuccessful and goto retry; is called. goto is restricted and requires that the target label be in the same file and context.
goto is supported since PHP 5.3.

Objects

Basic object-oriented programming functionality was added in PHP 3 and improved in PHP 4.[3] Object handling was completely rewritten for PHP 5, expanding the feature set and enhancing performance.[67] In previous versions of PHP, objects were handled like value types.[67] 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 and final classes as well as 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.[68]
Basic example of object-oriented programming as described above:
class Person {
   public $first;
   public $last;
 
   public function __construct($f, $l = '') { //Optional parameter
       $this->first = $f;
       $this->last = $l;
   }
 
   public function greeting() {
       return "Hello, my name is " . $this->first . " " . $this->last . ".";
   }
 
   static public function staticGreeting($first, $last) {
       return "Hello, my name is " . $first . " " . $last . ".";
   }
}
 
$him = new Person('John', 'Smith');
$her = new Person('Sally', 'Davis');
$other= new Person('Joe'); 
echo $him->greeting(); // prints "Hello, my name is John Smith."
echo '<br />';
echo $her->greeting(); // prints "Hello, my name is Sally Davis."
echo '<br />';
echo $other->greeting(); // prints "Hello, my name is Joe  ."
echo '<br />';
echo Person::staticGreeting('Jane', 'Doe'); // prints "Hello, my name is Jane Doe."



 

 

Visibility of properties and methods

The visibility of PHP properties and methods refers to visibility in PHP. It is defined using the keywords "public," "private," and "protected." The default is public, if only var is used; "var" is a synonym for "public." "Public" declared items 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.[70] 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."[71] However, they have also sometimes been described as "at best irrelevant and at worst positively harmful."[72]

Speed optimization

PHP source code is compiled on-the-fly to an internal format that can be executed by the PHP engine.[73][74] In order to speed up execution time and not have to compile the PHP source code every time the webpage is accessed, PHP scripts can also be deployed in executable format using a PHP compiler.
Code optimizers aim to enhance the performance of the compiled code by reducing its size, merging redundant instructs and making other changes that can reduce the execution time. With PHP, there are often opportunities for code optimization,[75]. An example of a code optimizer is the eAccelerator PHP extension.[76]
Another approach for reducing compilation overhead for PHP servers is using an opcode cache. Opcode caches work 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, APC, will be built into an upcoming release of PHP.[77]
Opcode caching and code optimization can be combined for best efficiency, as the modifications do not depend on each other (they happen in distinct stages of the compilation).

 

 

 



 

 

Compilers

The PHP language was originally implemented using a PHP interpreter. Several compilers now exist, which decouple the PHP language from the interpreter:
  • phc - a C++ based compiler for PHP, using the Zend run-time for maximum compatibility
  • Roadsend - achieves native compilation by compiling to bigloo scheme, which in turn is compiled to C, then to machine code
  • Raven - a rewrite of Roadsend PHP (rphp), based on LLVM and a new C++ runtime
  • Phalanger - compiles source code written in the PHP scripting language into CIL byte-code
  • Caucho Resin/Quercus - compiles PHP to Java bytecode
  • HipHop - developed at Facebook and now available as open source, transforms the PHP Script into C++, then compiles it.
  • php-to-scala - converts PHP to human-readable Scala source code, which the developer can compile to Java bytecode
Advantages of compilation include not only better execution speed, but also obfuscation, static analysis, and improved interoperability with code written in other languages.[78]

11Resources

PHP includes free and open source libraries with the core build. PHP is a fundamentally Internet-aware system with modules built in for accessing FTP servers, many database servers, embedded SQL libraries such as embedded PostgreSQL, MySQL and SQLite, LDAP servers, and others. Many functions familiar to C programmers such as those in the stdio family are available in the standard PHP build.[79]
PHP allows developers to write extensions in C to add functionality to the PHP language. These can then be compiled into PHP or loaded dynamically at runtime. 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. Some more unusual features include integration with Internet Relay Chat, dynamic generation of images and Adobe Flash content, and even speech synthesis. The PHP Extension Community Library (PECL) project is a repository for extensions to the PHP language.[80]
Zend provides a certification exam for programmers to become certified PHP developers.

What is MySQL?

MySQL is a database.
The data in MySQL is stored in database objects called tables.
A table is a collections of related data entries and it consists of columns and rows.
Databases are useful when storing information categorically. A company may have a database with the following tables: "Employees", "Products", "Customers" and "Orders".

Database Tables

A database most often contains one or more tables. Each table is identified by a name (e.g. "Customers" or "Orders"). Tables contain records (rows) with data.
Below is an example of a table called "Persons":
LastName
FirstName
Address
City
Hansen
Ola
Timoteivn 10
Sandnes
Svendson
Tove
Borgvn 23
Sandnes
Pettersen
Kari
Storgt 20
Stavanger
The table above contains three records (one for each person) and four columns (LastName, FirstName, Address, and City).

 

Top of Form
Bottom of Form

 

 

 

 


 

 

 

Queries

A query is a question or a request.
With MySQL, we can query a database for specific information and have a recordset returned.
Look at the following query:
SELECT LastName FROM Persons
The query above selects all the data in the "LastName" column from the "Persons" table, and will return a recordset like this:
LastName
Hansen
Svendson
Pettersen

 

 

Create a Connection to a MySQL Database

Before you can access data in a database, you must create a connection to the database.
In PHP, this is done with the mysql_connect() function.

Syntax

mysql_connect(servername,username,password);

Parameter
Description
servername
Optional. Specifies the server to connect to. Default value is "localhost:3306"
username
Optional. Specifies the username to log in with. Default value is the name of the user that owns the server process
password
Optional. Specifies the password to log in with. Default is ""



Closing a Connection

The connection will be closed automatically when the script ends. To close the connection before, use the mysql_close() function:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// some code

mysql_close($con);
?>









 

 

 

 

 

 

 

 

Create a Database

The CREATE DATABASE statement is used to create a database in MySQL.

Syntax

CREATE DATABASE database_name





Create a Table

The CREATE TABLE statement is used to create a table in MySQL.

Syntax

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....

)










Insert Data Into a Database Table

The INSERT INTO statement is used to add new records to a database table.

Syntax

It is possible to write the INSERT INTO statement in two forms.
The first form doesn't specify the column names where the data will be inserted, only their values:
INSERT INTO table_name
VALUES (value1, value2, value3,...)
The second form specifies both the column names and the values to be inserted:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)




Insert Data From a Form Into a Database

Now we will create an HTML form that can be used to add new records to the "Persons" table.
Here is the HTML form:
<html>
<body>

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>

</body>
</html>
When a user clicks the submit button in the HTML form in the example above, the form data is sent to "insert.php".
The "insert.php" file connects to a database, and retrieves the values from the form with the PHP $_POST variables.
Then, the mysql_query() function executes the INSERT INTO statement, and a new record will be added to the "Persons" table.
Here is the "insert.php" page:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con)
?>













Select Data From a Database Table

The SELECT statement is used to select data from a database.

Syntax

SELECT column_name(s)
FROM table_name



Example

The following example selects all the data stored in the "Persons" table (The * character selects all the data in the table):
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

$result = mysql_query("SELECT * FROM Persons");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }

mysql_close($con);
?>
The output of the code above will be:
Peter Griffin
Glenn Quagmire


Display the Result in an HTML Table

The following example selects the same data as the example above, but will display the data in an HTML table:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

$result = mysql_query("SELECT * FROM Persons");

echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>
The output of the code above will be:
Firstname
Lastname
Glenn
Quagmire
Peter
Griffin


Update Data In a Database

The UPDATE statement is used to update existing records in a table.

Syntax

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value




Delete Data In a Database

The DELETE FROM statement is used to delete records from a database table.

Syntax

DELETE FROM table_name
WHERE some_column = some_value
























HARDWARE & SOFTWARE REQUIREMENTS


MINIMUM  REQUIREMENTS :
      
    TO RUN THIS PROJECT  , THE MINIMUM  HARDWARE    CONFIGURATION IS :

·       PENTIUM –I (133 Mhz)
·       32 MB RAM
·       2 G.B  HDD
·       1.44 MB FLOPPY  DISK DRIVE
·       VGA/SVGA  COLOR MONITOR
·       101 KEY STATNDARD KEYBOARD
·       SERIAL / PS2  MOUSE
·       DOT MATRIX. / INKJET PRINTER


FOR BEST PERFORMANCE :

·       PENTIUM –III (733 Mhz)
·       128 MB RAM
·       10 GB HDD
·       1.44 FLOPPY DISK DRIVE
·       15 “ SVGA COLOR MONITOR
·       121 MULTIMEDIA STANDARD KEYBOARD
·       SCROLL MOUSE
·      INKJET /LASER PRINTER

SOFTWARE REQUIREMENT

 
·       WINDOWS XP
·       VB.Net -6.0
·       MS-ACCES

















PART-III
(About  project)


























SYSTEM DEVELOPMENT LIFE CYCLE
                                                The system development life cycle is a sequence of events carried out by analysts, designers and users to develop and implement an information system. These activities are carried out in different stages.
SYSTEM DEVELOPMENT STAGES
                                                System design is the most creative phase of the system development. The term design describes a final system and the process by which it is developed. It includes the construction of programs and program testing. The key question of system design is : How should problem be solved ?
      
                                        A  Systematic method has to achieve the beneficial results at the end. It involves starting with a vagus idea and developing it into series of steps. The series of steps for successful system development or successful system design are explained below. First step is to study problem completely because first of all we should know the goal, which we want to achieve from the system. It is very challenging step of the system development. According to the input requirement of the system the structure of various have to achieve. Second step we should see what kind of output we require and what kind of input we give to it so that we can get desired output individual programs, which later on joining solve problem. Then we test these programs and make necessary correction in them to achieve target of the programs. At last combining all these problems in the form of databases should be designed. Next we should what kind of program should be developed to reach final goal.

In other words, various steps involved in system design are:--

  • Requirements analysis
  • Feasibility study
  • Software requirement specification
  • Design
  • Coding          
  • Testing
  • Implementation
  • Maintenance
  • Post Implementation










                        REQUIREMENT ANALYSIS :-
                                     
 Requirement   analysis   is  done  in  order  to properly   understand  the  problem  which  is  solved  by  the  software  system which  is  to  be developed. Here, software  development  is  a puzzle, which  is
to  be  solved  to  create  a new system. When  we start  we  should  know clearly and  exactly  about  the  problem. For example,the problem could  be automating an existing  manual  process,

No comments:

Post a Comment