Web Scripting using PHP
Web Scripting using PHP Server side scripting
So what is a Server Side Scripting Language? • Programming language code embedded into a web page PERL PHP PYTHON ASP
So what is a Server Side Scripting Language? • Programming language code embedded into a web page PERL PHP PYTHON ASP
Different ways of scripting the Web • Programming language code embedded into a web page No scripting (plain markup) Client Side scripting Ser ver Side scripting Combination of the above (AJAX)
No Scripting example - how it works... User on a machine somewhere Ser ver machine
Being more specific...
Web Browser soft ware
Web ser ver soft ware
User types in a URL for a page with no programming code inside
User types in a URL for a page with no programming code inside Uniform Resource Locator
Request is sent to ser ver using HTTP
Request is sent to ser ver using HTTP Hypertext Transfer Protocol
Ser ver soft ware finds the page
Page is sent back, using HTTP
Browser renders / displays the page
Server Side scripting
User types in a URL for a page with PHP code inside
Request is sent to ser ver using HTTP
Ser ver soft ware finds the page
Ser ver side code is executed
Page is sent back, using HTTP
Browser renders / displays the page
Server side scripting languages • Executes in the ser ver • Before the page is sent from server to browser • Ser ver side code is not visible in the client • Ser ver side code can access resources on the server side
Browser Web ser ver Database ser ver
How many items in stock?
HTTP request
Web ser ver executes code
Web ser ver executes code Queries database ser ver
Result sent back
HTML generated
HTTP response
Answer displayed
So why PHP? PERL PHP PYTHON ASP
PHP usage ... • Source: PHP programming 2nd Ed.
PHP compared to others ... • Source: www.securityspace.com
Books - core syntax Programming PHP, Second Edition PHP in a Nutshell By Kevin Tatroe, Rasmus Lerdorf, By Paul Hudson Peter MacIntyre First Edition October 2005 Second Edition April 2006 ** Recommended
Books - learning / tutorial based Learning PHP 5 Learning PHP and MySQL By David Sklar By Michele Davis, Jon Phillips First Edition June 2004 First Edition June 2006
Other texts.. • There are other publishers / texts (trade books) • Look for books that cover PHP 5 • Open source, server side languages can rapidly develop • Features added or deprecated rapidly
PHP development PHP 5 PHP 4 PHP 3 PHP 1 • 5 versions in 10 years
Language basics
Language basics • Embedding PHP in Web pages • Whitespace and Line breaks • Statements and semicolons • Comments • Literals / names • Identifiers • Keywords • Data types
Language basics • Embedding PHP in Web pages • Whitespace and Line breaks • Statements and semicolons • Comments • Literals / names • Identifiers • Keywords • Data types Much of this material is explained in PHP programming 2nd Ed. Chap 1 & 2
Embedding PHP in web pages Use <?php and ?> to <?php surround the php code statement; statement; statement ?>
Embedding PHP in web pages <?php statement;statement; statement; statement; statement;statement; ?> In general whitespace doesn’t matter Use indenting and separate lines to create readable code
The legendary Hello World program <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>This is the first PHP program</title> </head> <body> <p> <?php print "Hello World!"; ?> </p> </body> </html>
The legendary Hello World program <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>This is the first PHP program</title> </head> <body> <p> <?php print "Hello World!"; ?> </p> </body> </html>
The legendary Hello World program <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>This is the first PHP program</title> </head> <body> <p> print sends a sequence of <?php print "Hello World!"; characters to the output ?> </p> The sequence here is </body> indicated by start and </html> end quotes
PHP can be put ‘ nywhere’.. a All the php blocks are processed <html> <?php ... ?> before the page is sent <head> <?php ... ?> <title>... <?php ... ?> ...</title> </head> <body> <p> <?php ... ?> </p> </body> </html>
PHP can be put ‘ nywhere’.. but works in sequence a <html> <?php ... ?> Starting at the top <head> <?php ... ?> <title>... <?php ... ?> ...</title> </head> <body> <p> <?php ... ?> Working down to the bottom </p> </body> </html>
Statements and semicolons Use ; to separate <?php statements statement; statement; statement; ?>
All of these would work the same way... <?php statement; statement;statement ?> <?php statement; statement;statement; ?> <?php statement; statement; This is the best way of statement; laying the code out ?>
Comments Many different ways to add comments Comment Source Action // C++ Comments to EOL # Unix shell scripting Comments to EOL /* and */ C Comments out a block
Comments <?php php statement; // A comment here php statement; # Another comment here /* A series of lines with comments ignored by the PHP processor */ php statement; ?>
Comments <?php php statement; // A comment here php statement; # Another comment here /* A series of lines with comments ignored by the PHP processor */ php statement; ?> Everything in red is ignored by the PHP interpreter
Language basics • Embedding PHP in Web pages • Whitespace and Line breaks • Statements and semicolons • Comments • Literals / names • Identifiers • Keywords • Data types
Language basics • Embedding PHP in Web pages ✔ • Whitespace and Line breaks ✔ • Statements and semicolons ✔ • Comments ✔ • Literals / names • Identifiers • Keywords • Data types
Literals A data value that appears directly in the program 2001 An integer 0xFE Hexadecimal number 1.4142 Float “Hello World” String ‘Hi’ String true Bool null built in ‘no value’ symbol
Identifiers Identifiers (or names) in PHP must - Begin with an ASCII letter (uppercase or lowercase) or begin with the underscore character _ or any character bet ween ASCII 0x7F to 0xFF followed by any of these characters and the digits 0-9
Variables Variables in PHP are identifiers prefixed by $ $bill $value_count $anothervalue3 Valid $THIS_IS_NOT_A_GOOD_IDEA $_underscore $not valid Invalid $[ $3wa
Case sensitivity - names we define are case sensitive $value Three different names $VALUE $vaLUE
Variables We use variables for items of data that will change as the program runs Choose a sensible name and have as many as you like $total_income $bill $salary $month $total $percentage_increase
Variables When we declare a variable, a space is reserved and labelled for that item (in memory) $bill $bill
Variables To give it a value, use the equals sign $bill $bill
Variables To give it a value, use the equals sign $bill = 42 $bill
Variables To give it a value, use the equals sign $bill = 42 42 $bill
Variables To give it a value, use the equals sign $bill $bill
Variables To give it a value, use the equals sign $bill = 57.98 $bill
Variables To give it a value, use the equals sign $bill = 57.98 57.98 $bill
Variables To give it a value, use the equals sign $bill $bill
Variables To give it a value, use the equals sign $bill = “No payment” $bill
Variables To give it a value, use the equals sign $bill = “No payment” “No payment” $bill
Variables If a value is changed, the old value is over written $bill $bill
Variables If a value is changed, the old value is over written $bill = 42; $bill
Variables If a value is changed, the old value is over written $bill = 42; 42 $bill
Variables If a value is changed, the old value is over written $bill = 42; 42 $bill = 58; $bill
Variables If a value is changed, the old value is over written $bill = 42; 58 $bill = 58; $bill
Variables Sometimes we use the old value to recalculate the new value $bill $bill
Variables Sometimes we use the old value to recalculate the new value $bill = 42; $bill
Variables Sometimes we use the old value to recalculate the new value $bill = 42; 42 $bill
Variables Sometimes we use the old value to recalculate the new value $bill = 42; 42 $bill = $bill*2 ; $bill
Variables Sometimes we use the old value to recalculate the new value $bill = 42; 84 $bill = $bill*2 ; $bill
Variables Some languages are very strict about what kinds of data are stored in variables - PHP doesn’t care $bill=42; Stores an integer $bill=42; $bill=”Now its a string”; print $bull;
Variables Some languages are very strict about what kinds of data are stored in variables - PHP doesn’t care $bill=42; Stores an integer $bill=42; Over writes with a string $bill=”Now its a string”; print $bull;
Variables Some languages are very strict about what kinds of data are stored in variables - PHP doesn’t care $bill=42; Stores an integer $bill=42; Over writes with a string $bill=”Now its a string”; Whoops - made a mistake print $bull; but it still works
Variables Some languages are very strict about what kinds of data are stored in variables - PHP doesn’t care $bill=42; Stores an integer $bill=42; Over writes with a string $bill=”Now its a string”; Whoops - made a mistake print $bull; but it still works
Keywords _CLASS_ _ Declare extends print( ) _ _FILE_ _ Default final private Reserved by _ _FUNCTION_ _ die( ) for protected the language _ _LINE_ _ Do foreach public for core _ _METHOD_ _ echo( ) function require( ) Else global functionality Abstract And elseif if require_once( ) array( ) empty( ) implements return( ) As enddeclare include( ) static Break endfor include_once( ) switch Also - can’t Case catch endforeach interface tHRow endif isset( ) use a built in cfunction endswitch list( ) TRy unset( ) function Class endwhile new use clone name as a Const eval( ) old_function var exception Or variable Continue exit( ) php_user_filter while xor
Data types PHP provides 8 types scalar (single-value) compound integers arrays floating-point objects string booleans Two are special - resource and NULL
Integers Whole numbers - range depends on the C compiler that PHP was made in (compiled in) Typically +2,147,483,647 to -2,147,483,647 Octal 0755 Hexadecimal 0xFF Larger integers get converted to floats automatically
Floating-Point Numbers Real numbers - again range is implementation specific Typically 1.7E-308 to 1.7E+308 with 15 digits of accuracy Examples 3.14, 0.017, -7.1, 0.314E1, 17.0E-3
Strings Delimited by either single or double quotes ‘here is a string’ “here is another string”
Strings - single quotes You can use single quotes to enclose double quotes $outputstring=‘He then said “Goodbye” and left’; Useful for easily printing HTML attributes $outputstring=‘<a href=”http:/www.bbc.co.uk”>BBC</a>’;
Strings - double quotes You can use double quotes to enclose single quotes $outputstring=”He then said ‘Goodbye’ and left”;
Operators Standard arithmetic operators: +, -, *, /, % .. Concatenation operator: . $outputstring=”He then said “.$quote; Any non-string value is converted to a string before the concatenation.
Operators $aBool=true; $anInt=156; $aFloat=12.56; $anotherFloat=12.2E6; $massiveFloat=12.2E-78; print "The bool printed looks like this: ".$aBool."<br />"; print "The int printed looks like this: ".$anInt."<br />"; print "The (smaller) float printed looks like this: ".$aFloat."<br />"; print "The larger float printed looks like this: ".$anotherFloat."<br />"; print "The even larger float printed looks like this: ".$massiveFloat."<br />";
Operators $aBool=true; $anInt=156; $aFloat=12.56; $anotherFloat=12.2E6; $massiveFloat=12.2E-78; print "The bool printed looks like this: ".$aBool."<br />"; print "The int printed looks like this: ".$anInt."<br />"; print "The (smaller) float printed looks like this: ".$aFloat."<br />"; print "The larger float printed looks like this: ".$anotherFloat."<br />"; print "The even larger float printed looks like this: ".$massiveFloat."<br />";

php app development 1

  • 1.
  • 2.
    Web Scripting usingPHP Server side scripting
  • 3.
    So what isa Server Side Scripting Language? • Programming language code embedded into a web page PERL PHP PYTHON ASP
  • 4.
    So what isa Server Side Scripting Language? • Programming language code embedded into a web page PERL PHP PYTHON ASP
  • 5.
    Different ways ofscripting the Web • Programming language code embedded into a web page No scripting (plain markup) Client Side scripting Ser ver Side scripting Combination of the above (AJAX)
  • 6.
    No Scripting example- how it works... User on a machine somewhere Ser ver machine
  • 7.
  • 8.
  • 9.
  • 10.
    User types ina URL for a page with no programming code inside
  • 11.
    User types ina URL for a page with no programming code inside Uniform Resource Locator
  • 12.
    Request is sentto ser ver using HTTP
  • 13.
    Request is sentto ser ver using HTTP Hypertext Transfer Protocol
  • 14.
    Ser ver software finds the page
  • 15.
    Page is sentback, using HTTP
  • 16.
  • 17.
  • 18.
    User types ina URL for a page with PHP code inside
  • 19.
    Request is sentto ser ver using HTTP
  • 20.
    Ser ver software finds the page
  • 21.
    Ser ver sidecode is executed
  • 22.
    Page is sentback, using HTTP
  • 23.
  • 24.
    Server side scriptinglanguages • Executes in the ser ver • Before the page is sent from server to browser • Ser ver side code is not visible in the client • Ser ver side code can access resources on the server side
  • 25.
    Browser Web ser ver Database ser ver
  • 26.
    How many itemsin stock?
  • 27.
  • 28.
  • 29.
    Web ser ver executes code Queries database ser ver
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
    So why PHP? PERL PHP PYTHON ASP
  • 35.
    PHP usage ... • Source: PHP programming 2nd Ed.
  • 36.
    PHP compared toothers ... • Source: www.securityspace.com
  • 37.
    Books - coresyntax Programming PHP, Second Edition PHP in a Nutshell By Kevin Tatroe, Rasmus Lerdorf, By Paul Hudson Peter MacIntyre First Edition October 2005 Second Edition April 2006 ** Recommended
  • 38.
    Books - learning/ tutorial based Learning PHP 5 Learning PHP and MySQL By David Sklar By Michele Davis, Jon Phillips First Edition June 2004 First Edition June 2006
  • 39.
    Other texts.. • There are other publishers / texts (trade books) • Look for books that cover PHP 5 • Open source, server side languages can rapidly develop • Features added or deprecated rapidly
  • 40.
    PHP development PHP 5 PHP 4 PHP 3 PHP 1 • 5 versions in 10 years
  • 41.
  • 42.
    Language basics • Embedding PHP in Web pages • Whitespace and Line breaks • Statements and semicolons • Comments • Literals / names • Identifiers • Keywords • Data types
  • 43.
    Language basics • Embedding PHP in Web pages • Whitespace and Line breaks • Statements and semicolons • Comments • Literals / names • Identifiers • Keywords • Data types Much of this material is explained in PHP programming 2nd Ed. Chap 1 & 2
  • 44.
    Embedding PHP inweb pages Use <?php and ?> to <?php surround the php code statement; statement; statement ?>
  • 45.
    Embedding PHP inweb pages <?php statement;statement; statement; statement; statement;statement; ?> In general whitespace doesn’t matter Use indenting and separate lines to create readable code
  • 46.
    The legendary HelloWorld program <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>This is the first PHP program</title> </head> <body> <p> <?php print "Hello World!"; ?> </p> </body> </html>
  • 47.
    The legendary HelloWorld program <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>This is the first PHP program</title> </head> <body> <p> <?php print "Hello World!"; ?> </p> </body> </html>
  • 48.
    The legendary HelloWorld program <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>This is the first PHP program</title> </head> <body> <p> print sends a sequence of <?php print "Hello World!"; characters to the output ?> </p> The sequence here is </body> indicated by start and </html> end quotes
  • 49.
    PHP can beput ‘ nywhere’.. a All the php blocks are processed <html> <?php ... ?> before the page is sent <head> <?php ... ?> <title>... <?php ... ?> ...</title> </head> <body> <p> <?php ... ?> </p> </body> </html>
  • 50.
    PHP can beput ‘ nywhere’.. but works in sequence a <html> <?php ... ?> Starting at the top <head> <?php ... ?> <title>... <?php ... ?> ...</title> </head> <body> <p> <?php ... ?> Working down to the bottom </p> </body> </html>
  • 51.
    Statements and semicolons Use ; to separate <?php statements statement; statement; statement; ?>
  • 52.
    All of thesewould work the same way... <?php statement; statement;statement ?> <?php statement; statement;statement; ?> <?php statement; statement; This is the best way of statement; laying the code out ?>
  • 53.
    Comments Many different waysto add comments Comment Source Action // C++ Comments to EOL # Unix shell scripting Comments to EOL /* and */ C Comments out a block
  • 54.
    Comments <?php php statement; // A comment here php statement; # Another comment here /* A series of lines with comments ignored by the PHP processor */ php statement; ?>
  • 55.
    Comments <?php php statement; // A comment here php statement; # Another comment here /* A series of lines with comments ignored by the PHP processor */ php statement; ?> Everything in red is ignored by the PHP interpreter
  • 56.
    Language basics • Embedding PHP in Web pages • Whitespace and Line breaks • Statements and semicolons • Comments • Literals / names • Identifiers • Keywords • Data types
  • 57.
    Language basics • Embedding PHP in Web pages ✔ • Whitespace and Line breaks ✔ • Statements and semicolons ✔ • Comments ✔ • Literals / names • Identifiers • Keywords • Data types
  • 58.
    Literals A data valuethat appears directly in the program 2001 An integer 0xFE Hexadecimal number 1.4142 Float “Hello World” String ‘Hi’ String true Bool null built in ‘no value’ symbol
  • 59.
    Identifiers Identifiers (or names)in PHP must - Begin with an ASCII letter (uppercase or lowercase) or begin with the underscore character _ or any character bet ween ASCII 0x7F to 0xFF followed by any of these characters and the digits 0-9
  • 60.
    Variables Variables in PHPare identifiers prefixed by $ $bill $value_count $anothervalue3 Valid $THIS_IS_NOT_A_GOOD_IDEA $_underscore $not valid Invalid $[ $3wa
  • 61.
    Case sensitivity -names we define are case sensitive $value Three different names $VALUE $vaLUE
  • 62.
    Variables We use variablesfor items of data that will change as the program runs Choose a sensible name and have as many as you like $total_income $bill $salary $month $total $percentage_increase
  • 63.
    Variables When we declarea variable, a space is reserved and labelled for that item (in memory) $bill $bill
  • 64.
    Variables To give ita value, use the equals sign $bill $bill
  • 65.
    Variables To give ita value, use the equals sign $bill = 42 $bill
  • 66.
    Variables To give ita value, use the equals sign $bill = 42 42 $bill
  • 67.
    Variables To give ita value, use the equals sign $bill $bill
  • 68.
    Variables To give ita value, use the equals sign $bill = 57.98 $bill
  • 69.
    Variables To give ita value, use the equals sign $bill = 57.98 57.98 $bill
  • 70.
    Variables To give ita value, use the equals sign $bill $bill
  • 71.
    Variables To give ita value, use the equals sign $bill = “No payment” $bill
  • 72.
    Variables To give ita value, use the equals sign $bill = “No payment” “No payment” $bill
  • 73.
    Variables If a valueis changed, the old value is over written $bill $bill
  • 74.
    Variables If a valueis changed, the old value is over written $bill = 42; $bill
  • 75.
    Variables If a valueis changed, the old value is over written $bill = 42; 42 $bill
  • 76.
    Variables If a valueis changed, the old value is over written $bill = 42; 42 $bill = 58; $bill
  • 77.
    Variables If a valueis changed, the old value is over written $bill = 42; 58 $bill = 58; $bill
  • 78.
    Variables Sometimes we usethe old value to recalculate the new value $bill $bill
  • 79.
    Variables Sometimes we usethe old value to recalculate the new value $bill = 42; $bill
  • 80.
    Variables Sometimes we usethe old value to recalculate the new value $bill = 42; 42 $bill
  • 81.
    Variables Sometimes we usethe old value to recalculate the new value $bill = 42; 42 $bill = $bill*2 ; $bill
  • 82.
    Variables Sometimes we usethe old value to recalculate the new value $bill = 42; 84 $bill = $bill*2 ; $bill
  • 83.
    Variables Some languages arevery strict about what kinds of data are stored in variables - PHP doesn’t care $bill=42; Stores an integer $bill=42; $bill=”Now its a string”; print $bull;
  • 84.
    Variables Some languages arevery strict about what kinds of data are stored in variables - PHP doesn’t care $bill=42; Stores an integer $bill=42; Over writes with a string $bill=”Now its a string”; print $bull;
  • 85.
    Variables Some languages arevery strict about what kinds of data are stored in variables - PHP doesn’t care $bill=42; Stores an integer $bill=42; Over writes with a string $bill=”Now its a string”; Whoops - made a mistake print $bull; but it still works
  • 86.
    Variables Some languages arevery strict about what kinds of data are stored in variables - PHP doesn’t care $bill=42; Stores an integer $bill=42; Over writes with a string $bill=”Now its a string”; Whoops - made a mistake print $bull; but it still works
  • 87.
    Keywords _CLASS_ _ Declare extends print( ) _ _FILE_ _ Default final private Reserved by _ _FUNCTION_ _ die( ) for protected the language _ _LINE_ _ Do foreach public for core _ _METHOD_ _ echo( ) function require( ) Else global functionality Abstract And elseif if require_once( ) array( ) empty( ) implements return( ) As enddeclare include( ) static Break endfor include_once( ) switch Also - can’t Case catch endforeach interface tHRow endif isset( ) use a built in cfunction endswitch list( ) TRy unset( ) function Class endwhile new use clone name as a Const eval( ) old_function var exception Or variable Continue exit( ) php_user_filter while xor
  • 88.
    Data types PHP provides8 types scalar (single-value) compound integers arrays floating-point objects string booleans Two are special - resource and NULL
  • 89.
    Integers Whole numbers -range depends on the C compiler that PHP was made in (compiled in) Typically +2,147,483,647 to -2,147,483,647 Octal 0755 Hexadecimal 0xFF Larger integers get converted to floats automatically
  • 90.
    Floating-Point Numbers Real numbers- again range is implementation specific Typically 1.7E-308 to 1.7E+308 with 15 digits of accuracy Examples 3.14, 0.017, -7.1, 0.314E1, 17.0E-3
  • 91.
    Strings Delimited by eithersingle or double quotes ‘here is a string’ “here is another string”
  • 92.
    Strings - singlequotes You can use single quotes to enclose double quotes $outputstring=‘He then said “Goodbye” and left’; Useful for easily printing HTML attributes $outputstring=‘<a href=”http:/www.bbc.co.uk”>BBC</a>’;
  • 93.
    Strings - doublequotes You can use double quotes to enclose single quotes $outputstring=”He then said ‘Goodbye’ and left”;
  • 94.
    Operators Standard arithmetic operators:+, -, *, /, % .. Concatenation operator: . $outputstring=”He then said “.$quote; Any non-string value is converted to a string before the concatenation.
  • 95.
    Operators $aBool=true; $anInt=156; $aFloat=12.56; $anotherFloat=12.2E6; $massiveFloat=12.2E-78; print "The boolprinted looks like this: ".$aBool."<br />"; print "The int printed looks like this: ".$anInt."<br />"; print "The (smaller) float printed looks like this: ".$aFloat."<br />"; print "The larger float printed looks like this: ".$anotherFloat."<br />"; print "The even larger float printed looks like this: ".$massiveFloat."<br />";
  • 96.
    Operators $aBool=true; $anInt=156; $aFloat=12.56; $anotherFloat=12.2E6; $massiveFloat=12.2E-78; print "The boolprinted looks like this: ".$aBool."<br />"; print "The int printed looks like this: ".$anInt."<br />"; print "The (smaller) float printed looks like this: ".$aFloat."<br />"; print "The larger float printed looks like this: ".$anotherFloat."<br />"; print "The even larger float printed looks like this: ".$massiveFloat."<br />";