1 / 50

Internet & WWW How to program

Internet & WWW How to program. Chap.(23 4 th Ed.) PHP ( Personal Home Page ). (23.1) Introduction. PHP is platform independent; implementations exist for all major UNIX, Linux and Windows operating systems. PHP also support a large number of databases, including MySQL . We study:

jaafar
Download Presentation

Internet & WWW How to program

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internet & WWWHow to program Chap.(23 4th Ed.) PHP (Personal Home Page) Dr. Qusai Abuein

  2. (23.1) Introduction • PHP is platform independent; implementations exist for all major UNIX, Linux and Windows operating systems. • PHP also support a large number of databases, including MySQL. • We study: • basics of the scripting languages • viewing environment variables • form processing and business logic • implementing a private Web site through username and password verifications • application that queries a MySQL database • use cookies to store information • form-processing Dr. Qusai Abuein

  3. (23.2) PHP Basics • PHP was written specifically for interacting with the Web: • not only serving content to users, but also responding to requests from users • generating Web pages with dynamic content • PHP code is embedded directly into XHTML documents. This allows the document author to write XHTML in a clear, concise manner, without having to use multiple print statements, as is necessary with other CGI-based languages. • PHP script file names usually end with .php, although a server can be configured to handle other file extensions. • To run a PHP script, PHP must first installed on your system. • For this chapter’s examples to run correctly, you might need to copy it to: (C:\Program Files\ApacheGroup\Apache2\htdocs)for those who are using Apache . Dr. Qusai Abuein

  4. (23.2) PHP Basics • Figure 23.1 (first.php) presents a simple PHP program that displays a welcome message. • In PHP, code is inserted between the scripting delimiters <?php and ?>. • PHP code can be placed anywhere in XHTML markup, as long as the code is enclosed in these scripting delimiters. • All variables are preceded by $ and are case sensitive: • $name != $Name • PHP statements are terminated with a semicolon ( ;). Dr. Qusai Abuein

  5. (23.2) PHP Basics • one-line comment (//, #). See line 8. • Multiline comments begin with delimiter /* and end with delimiter */ • Line 21 outputs the value of variable $name by calling function print. • When a variable is encountered inside a double-quoted (“”) string, PHP interpolates the variable. • PHP variables are “multitype,” meaning that they can contain different types of data (e.g., integers, doubles or strings) at different times. Figure 23.1 (first.php) introduces theses data types. Dr. Qusai Abuein

  6. (23.2) PHP Basics • Boolean variables: • $a = true; // do not use quotes , $b = 1; is evaluated to true • $c = false; // d = 0; is evaluated to false • PHP variable names are case sensitive. • Function names are case insensitive. • Constants names are according to the user definition. Dr. Qusai Abuein

  7. (23.2) PHP Basics • Data types in PHP can be found in Figure 32.2. • int, integer • float, double, real • string • bool, boolean • array • object • resource • NULL (no value) Dr. Qusai Abuein

  8. (23.2) Converting Between PHP Data Types • Conversion between different data type may be necessary when performing arithmetic operations with variables. In PHP data-type conversion can be performed by passing the data type as an argument to function settype. See Figure 23.3 (data.php). • Function settype tack two arguments: • the variable whose data is to be changed and • the variable’s new data type. • Another option for conversion between types is casting (or type casting). Unlike settype, casting doesn’t change a variable’s content. Rather, type casting creates a temporary copy of a variables value in memory. • The concatenation operator (.) concatenates strings. Line 47 – 50. Dr. Qusai Abuein

  9. (23.2) Arithmetic operators • Fig.23.4 (operators.php)demonstrates a variety of arithmetic operators in PHP. • Line 18 calls function define to create a named constant. • A constant is a value that cannot be modified once it is declared. • Function define tacks two arguments: • the name (without $) and • the value of the constant. • An optional third argument accepts a Boolean value that specifies whether the constant is case insensitive—constants are case sensitive by default. Dr. Qusai Abuein

  10. (23.2) Arithmetic operators • In PHP, uninitialized variables have the value undef, which evaluates to different values, depending on its context. For example: • when undef is used in a numeric context (e.g., $num in line 54), it evaluates to 0. • when undef is interpreted in a string context (e.g., $nothing in line 51), it evaluates to an empty string (“”). • Strings are converted to integers when they are used in arithmetic operation (lines 59-60). Dr. Qusai Abuein

  11. (23.2) Arithmetic operators • //Addition: $a + b = 6 • //Subtraction: $a - $b = 2 • //Multiplication: $a * $b = 8 • //Division :$a / $b = 2 • //Modulus (remainder of $a / $b): $a % $b = 0 • //Increment: $a++ (would equal 5 since $a = 4) • Comparison Operators : • $a == $b test if two values are equal • $a != $b test if two values are not equal • $a < $ b test if the first value is less than the second • $a > $b test if the first value is greater than the second • $a <= $b test if the first value is less than or equal to the second • $a >= $b test if the first value is greater than or equal to the second Dr. Qusai Abuein

  12. (23.2) PHP Keywords • Figure 23.5, contains the keywords. • Exit • Die • Do • Isset • Array • Echo, print • Default • Function Dr. Qusai Abuein

  13. Switch Statements $a = "100"; switch($a) { case(10): print ( "The value is 10“) ; break; case (100): print( "The value is 100<br/>“); break; case (1000): print( "The value is 1000“); break; default: print( "<p>Are you sure you entered a number?“); } Dr. Qusai Abuein

  14. While and Do WhileLoops While (condition) { statement(s); } ---------------- $i = 0; do { print $i; } while ($i>0); Dr. Qusai Abuein

  15. (23.2) Initializing and manipulating Arrays • Arrays are divided into elements that behave as individual variables. Array names, like other variables, begin with the $ symbol. See Fig.23.6 (arrays.php). • Individual array elements are accessed by following the array-variable name with an index (starting at 0) enclosed in braces ([]). • If a value is assigned to an array that doesn’t exist, then the array is created (lines 18,19,20). • assigning a value to an element where the index is omitted appends a new element to the end of the array (line 21). • Function count (used in the for loop) returns the total number of elements in the array. • Line 31 demonstrates a second method of initializing arrays. Function array returns an array that contains the arguments passed to it. Dr. Qusai Abuein

  16. (23.2) Initializing and manipulating Arrays • In addition to integer indices, arrays can have nonnumeric indices (lines 39-41). • For example, indices ArtTic, LunaTic and GalAnt are assigned the values 21, 18, 23, respectively. • PHP provides function for iterating through the elements of an array (lines 45-46). • Each array has a built-in internal pointer, which points to the array element currently begin referenced. • Function reset sets the internal pointer to the first element of the array. • Function key returns the index of the element currently referenced by the internal pointer: • $i = key(third); $third($i); • Function next moves the internal pointer to the next element. • The for loop continues to execute as long as function key returns an index. Function next returns false when there are no additional elements in the array. Dr. Qusai Abuein

  17. (23.2) Initializing and manipulating Arrays • Function array can also be used to initialize arrays with string indices. In order to override the automatic numeric indexing performed by function array, use operator (=>), as demonstrated in lines 54-61. • The value to the left of the operator is the array index, and the value to the right is the element’s value. An array with string indices also is called an associative array. • The foreach loop (lines 64-65) is a control statement that is specially designed for iterating through arrays. • The syntax for a foreach loop: • starts with the array to iterate through, • followed by the keyword as, • followed by the variables to receive the index and the value for each element. Dr. Qusai Abuein

  18. (23.2) Initializing and manipulating Arrays • Text manipulation in PHP is usually done with regular expressions. • regular expressions are a series of characters that serve as pattern-matching templates (or search criteria) in strings, text files and databases. Dr. Qusai Abuein

  19. (23.3) String Processing and Regular Expressions • Comparing Strings: • Line 23 and 25 of Fig.23.7 (compare.php) call function strcmp to compare two strings: • If the first string alphabetically precedes the second string, then -1 is returned. • If the strings are equal, then 0 is returned. • If the first string alphabetically follows the second string, then 1 is returned Dr. Qusai Abuein

  20. (23.3) String Processing and Regular Expressions • Relational operators (= =,! =, <, <=, >, >=) can also be used to compare strings. These operators are also used for numerical comparison with integers and doubles. • Using Regular Expressions • PHP provides function ereg, which uses regular expressions to search a string for a specified pattern (return false if not matched or the length of the matched string) • eregi for case sensitive pattern match. • Figures (23.9, 23.10) contains some PHP quantifiers and character classes. • {n}, {m,n}, {n,}, +, *, ? • alnum, alpha, digit, space, lower, upper Dr. Qusai Abuein

  21. (23.3) String Processing and Regular Expressions • Figure 23.8 (expression.php) demonstrates some of PHP’s regular expressions capabilities. • Line 14 assigns the string “Now is the time” to variable $search • Line 19 calls function ereg to search for the literal characters “Now” inside variable $search. If(ereg(“Now”, $search)) • If the pattern is found, ereg returns true. • Function ereg tacks two arguments-a regular expression pattern to search for (Now) and the string to search. And an optional third one as an array to hold the results. Dr. Qusai Abuein

  22. (23.3) String Processing and Regular Expressions • Function ereg is a case sensitive and searches only for the first occurrence. • PHP provides function eregi for specifying case-insensitive pattern matches. • In addition to literal characters, regular expressions can include special characters called (metacharacters) that specify patterns. For example: • The caret(^)specialcharacter matches the beginning of a string. Line 24 • A dollar sign ($) search for the specified pattern at the end of the string (line 29) • The period (.), which matches any single characters • If the third argument of preg is mentioned , then the first match of the string is stored in the second element of the array and the second match is stored in the third element and so on. The first element (index 0) contains the whole matched string. Line 34. Dr. Qusai Abuein

  23. (23.3) String Processing and Regular Expressions • Searching for multiple instances of a pattern in a string is slightly more complicated, because the ereg function matches only the first instance of the pattern. • To find multiple instances of a given pattern, we must remove any matched instances before calling ereg again. • Lines 42-49 use a while loop and the ereg_replace function to find all the words in the string that begins with t. • Function ereg_replace tacks three arguments: • the pattern to match, • a string to replace the matched string and • the string to search. • The modified string is returned , so line 48 uses $search to store the returned string allowing us to search for another match. The new $search string now does not contain the first matched string. Dr. Qusai Abuein

  24. User-Defined Functions function check_age($age) { if ($age > 21) { return 1; } else { return 0; } } //usage: if(check_age($age)) { print ("You may enter!“); } else { print( "Access Not Allowed!“); exit; } Dr. Qusai Abuein

  25. (23.4) Form Processing and Business Logic • One way to obtain data sent by client (user entry through forms) to server is by using Superglobal Arrays. • Superglobalarrays are associative arrays predefined by PHP that hold variables acquired from user input, the environment or the web server, and are accessible in any variable scope. • Some PHP superglobal arrays are listed in Figure 23.11. • $_SERVER, $_ENV, $_GET, $_POST, $_COOKIE, $GLOBALS Dr. Qusai Abuein

  26. (23.4) Form Processing and Business Logic • XHTMLform enables Web pages to collect data from users and send it to a Web server for processing. Interaction of these kinds between users and Web servers is vital to e-commerce applications. • Figure 23.12 (FORM.HTML) uses an XHTMLform to collect information about users for the purpose of adding them to a mailing list. • The action attribute of the form element (line 18) indicates that when the user clicks the Register (Submit) button, the form data will be posted to form.php (Fig. 26.14) for processing. • Using method = “post” appends form data to the browser request that contains the protocol (i.e., HTTP) and the requested recourse’s URL. • Scripts located on the web server’s machine can access the form data sent as part of the request. Dr. Qusai Abuein

  27. (23.4) Form Processing and Business Logic • We assign a unique name (e.g., email) to each of the form’s input fields. • When Register is clicked, each fields name and value is sent to the Web server. • Script form.php can then access the value for each specific field through the superglobalarray$_POST. • Superglobal arrays are associative arrays predefined by PHP that hold variables acquired from the user input, the environment or the Web server and are accessible in variable scope. The $_ENV array used in Fig. 23.13 is another example of superglobal array. • $_POST contains key-value pairs corresponding to name-value pairs for variables submitted through the form. [Note: The superglobal array $_GET would contain these key-value pairs if the form had been submitted using the HTTPget method]. • Figure 23.13 (form.php) processes the data posted by form.html and sends XHTML back to the client. Dr. Qusai Abuein

  28. (23.4) Form Processing and Business Logic • Function extract (associativeArray) (line 15) creates a variable-value pair corresponding to each key-value pair in the associativeArray (i.e., $_POST), creating variables whose respective names and values corresponding to the names and variables of each posted form field. • For example, in line 36 of Fig. 23.12, an XHTML text box is created and given the name email. • In line 70 of our PHP script (Fig. 23.13), after having called function extract, we access the field’s value by using variable $email. • Elements in the superglobal array $_POST also can be accessed using standard array notation. For example, we could have accessed the form field email’s value by referring to$_POST[‘email’]. • See Good Programming Practice tip 23.1 page 925. • $_POST[‘email’] is more secure than $email. • Function die() (line 43) terminates script execution. In this case, if the user did not enter a correct value, we do not want to continue executing the rest of the script, so we call function die(). • See Error_Prevention Tip 23.3 page 929. Dr. Qusai Abuein

  29. (23.5) Connecting to a DatabaseUsing MySQLi Functions • PHP MySQLi = PHP MySQL Improved! • Figures 23.14 (data.html) and 23.15 (database.php) use mysql function; which has been deprecated as of PHP 5.5.0 Dr. Qusai Abuein

  30. (23.5) Connecting to a Database (mysqli_connect) • The MySQLi functions allows you to access MySQL database servers. • mysqli_connect(): Opens a new connection to the MySQL server • Syntax • mysqli_connect(host,username,password,dbname,port,socket); Dr. Qusai Abuein

  31. (23.5) Connecting to a Database (mysqli_connect) • mysqli_connect(host,username,password,dbname,port,socket); • Returns an object representing the connection to the MySQL server Dr. Qusai Abuein

  32. (23.5) mysqli_connect_errno() • <?php$con = mysqli_connect("localhost","my_user","my_password","my_db");// Check connection Object Oriented :if (mysqli_connect_errno($con)){echo "Failed to connect to MySQL: " . mysqli_connect_error();}? > • Mysql_connect_errno(): Returns the error code from the last connection error Dr. Qusai Abuein

  33. (23.5) mysqli_connect_err() • <?php$con = mysqli_connect("localhost","my_user","my_password","my_db");// Check connection Structural programming • if (!$con) • {echo "Failed to connect to MySQL: " . mysqli_connect_error();}? > • mysqli_connect_error() function returns the error description from the last connection error, if any. Dr. Qusai Abuein

  34. (23.5) mysqli_select_db() • mysqli_select_db(): function is used to change the default database for the connection. • Syntax • mysqli_select_db(connection,dbname); Dr. Qusai Abuein

  35. (23.5) mysqli_select_db() • <?php$con=mysqli_connect("localhost","my_user","my_password","my_db");// Check connectionif (mysqli_connect_errno($con)){echo "Failed to connect to MySQL: " . mysqli_connect_error();}// ...some PHP code for database "my_db"...// Change database to "test"mysqli_select_db($con,"test");// ...some PHP code for database "test"...mysqli_close($con);?> • Note the connection “$con” argument of the connection parameter. • mysqli_close() function closes a previously opened database connection. Dr. Qusai Abuein

  36. (23.5) mysqli_query() • mysqli_query(): function performs a query (select, insert, update, delete) against the database. • Syntax • mysqli_query(connection,query,resultmode); Dr. Qusai Abuein

  37. (23.5) mysqli_query() • <?php$con=mysqli_connect("localhost","my_user","my_password","my_db");// Check connectionif (mysqli_connect_errno($con)){echo "Failed to connect to MySQL: " . mysqli_connect_error();}// Perform queries mysqli_query($con,"SELECT * FROM Persons");mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age) VALUES ('Glenn','Quagmire',33)");mysqli_close($con);?> Dr. Qusai Abuein

  38. (23.5) mysqli_fetch_row • mysqli_fetch_row(): function fetches one row from a result-set and returns it as an enumerated array. • Syntax • mysqli_fetch_row(result); • Result: Required. Specifies a result set identifier returned by mysqli_query(). Dr. Qusai Abuein

  39. (23.5) mysqli_fetch_row • <?php$con=mysqli_connect("localhost","my_user","my_password","my_db");// Check connectionif (mysqli_connect_errno($con)){echo "Failed to connect to MySQL: " . mysqli_connect_error();}$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";if ($result = mysqli_query($con,$sql)){// Fetch one and one rowwhile ($row=mysqli_fetch_row($result)){printf ("%s (%s)\n",$row[0],$row[1]);}// Free result setmysqli_free_result($result);}mysqli_close($con);?> Dr. Qusai Abuein

  40. (23.5) mysqli_fetch_array • mysqli_fetch_array(): function fetches a result row as an associative array, a numeric array, or both. • Note: Fieldnames returned from this function are case-sensitive. • Syntax • mysqli_fetch_array(result,resulttype); Dr. Qusai Abuein

  41. (23.5) mysqli_fetch_array • <?php$con=mysqli_connect("localhost","my_user","my_password","my_db");// Check connectionif (mysqli_connect_errno($con)){echo "Failed to connect to MySQL: " . mysqli_connect_error();}$sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";$result=mysqli_query($con,$sql)// Numeric array$row=mysqli_fetch_array($result,MYSQLI_NUM);printf ("%s (%s)\n",$row[0],$row[1]);// Associative array$row=mysqli_fetch_array($result,MYSQLI_ASSOC);printf ("%s (%s)\n",$row["Lastname"],$row["Age"]);// Free result setmysqli_free_result($result);mysqli_close($con);?> Dr. Qusai Abuein

  42. (23.5) mysqli_close() • mysqli_close(): function closes a previously opened database connection. • Syntax • mysqli_close(connection); • Connection: Required. Specifies the MySQL connection to close Dr. Qusai Abuein

  43. (23.5) Useful Functions • mysqli_errno(): function returns the last error code for the most recent function call, if any. • Syntax • mysqli_errno(connection); • connectionRequired. Specifies the MySQL connection to use • // Perform a query, check for errorif (!mysqli_query($con,"INSERT INTO Persons (FirstName) VALUES ('Glenn')")){echo("Errorcode: " . mysqli_errno($con));} Dr. Qusai Abuein

  44. (23.5) Useful Functions • mysqli_num_rows(): function returns the number of rows in a result set. • Syntax • mysqli_num_rows(result); • Result: Required. Specifies a result set identifier returned by mysqli_query() • $sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";if ($result=mysqli_query($con,$sql)){// Return the number of rows in result set$rowcount=mysqli_num_rows($result);printf("Result set has %d rows.\n",$rowcount);// Free result setmysqli_free_result($result);} Dr. Qusai Abuein

  45. (23.5) Useful Functions • mysqli_num_fields(): function returns the number of fields (columns) in a result set. • Syntax • mysqli_num_fields(result); • resultRequired. Specifies a result set identifier returned by mysqli_query() • $sql="SELECT Lastname,Age FROM Persons ORDER BY Lastname";if ($result=mysqli_query($con,$sql)){// Return the number of fields in result set$fieldcount=mysqli_num_fields($result);printf("Result set has %d fields.\n",$fieldcount);// Free result setmysqli_free_result($result);} Dr. Qusai Abuein

  46. (23.5) Connecting to DB using PDO • The PHP Data Objects(PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. • <?php$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);?> Dr. Qusai Abuein

  47. String Functions • Strcmp • Str_split, • Explode • Count_chars • Implode, join • str_replace • Str_word_count • Strlen • Strtolower, strtoupper Dr. Qusai Abuein

  48. Array Functions • count • array_key_exists • array_product • array_pop, array_push • array_replace • array_reverse • array_splice • array_sum • sort, asort Dr. Qusai Abuein

  49. Array Functions • current • end • key • next • pos • prev Dr. Qusai Abuein

  50. End of Chap. (23) Thank you . Dr. Qusai Abuein

More Related