58
PHP (2) – Functions, Arrays, Databases, email and sessions

PHP (2) – Functions, Arrays, Databases, email and sessions

  • View
    235

  • Download
    2

Embed Size (px)

Citation preview

PHP (2) – Functions, Arrays,

Databases, email and sessions

Location of User defined PHP functions

Where can PHP Functions be located ?

The short answer is: Anywhere!

Before the <head> section. In the <head> ... </head> section. In the <body> ... </body> section

PHP Functio

nLocatio

n

The output of the previous slide

External PHP Functions Can we put PHP functions in external

files and load them into pages ? - Yes !

When a website gets beyond a few pages in size, then it is most convenient to put the PHP functions in one or more external files. This also facilitates the maintenance and upgrading of the site

Example of external PHP function file

Result of interpreting the php file on the previous page

Returning Values from functions

PHP functions can return a value – note that returning a value from a function is optional.

The syntax for returning a single value is fairly straightforward – you just use the return keyword followed by the variable or value you want to return from the function.

PHP functions can also return nothing at all. i.e a function doesn’t have to use the return keyword at all or it can use return and not have a variable or value after it.

Example function returning a value

Result of interpreting the code in the previous slide

PHP Arrays An array in PHP is a list of key/value elements

in which any number of values can be stored (provided there is enough memory available).

There are 2 types of arrays in PHP – indexed and associative

Indexed arrays are the ones most people are familiar with. The key (or index) to each value is an integer.

Associative arrays can be useful at times. Members of associative arrays are accessed by means of text strings. The key (or index) to each value is a string.

When working with arrays in PHP, there is frequently more than one way of accomplishing a task.

Creating

Indexed

Arraysand the scope

of loops

The result of accessing the previous page

Creating Associative Arrays

Accessing the elements of an Associative Array

Elements can be accessed easily by means of their key.

If you want to access each element in sequence there are a number of approaches.

One simple approach is to use the each() function.

Using each() and reset()

The result of running the previous page.

The foreach() function This is similar to the each() function, but

it incorporates a loop and traverses the whole array it is applied to.

The foreach() function takes two arguments.

The first argument is the name of the array to be traversed. The second argument is the name of the variable to hold the individual element.

The foreach() function can be applied to multidimensional arrays and associative arrays as well as indexed arrays.

Using the foreach() function

The result of accessing the previous page

PHP functions supporting MYSQL operations

PHP has a large number of functions that enable it to interact with mysql databases.

This includes functions to open and close connections with databases, pass SQL queries to MYSQL tables, and process the results of queries.

The results of MYSQL queries in PHP can usually be treated as an array

PHP and MySQL (2) PHP functions that interact with MySQL may

be classified into groups. These are shown in the table below:-

Connecting and Disconnecting to MySQL

Databases using PHP

Define a PHP constant by using the define() function

The PHP define() function enables PHP programmers to create named data items whose value cannot be changed.

Once a constant is defined, it can never be changed or undefined in the script.

Using the define() function

Creating and dropping databases in PHP

There are 2 functions in this group. These are mysql_create_db and mysql_drop_db.

These functions would normally only be used by the administrator of an e-commerce website.

The power to create and destroy tables is not something that outside users of e-commerce sites should be allowed to do. There are very severe security considerations associated with these commands.

MySQL Access Privileges In MySQL (and most other serious

database systems) it is possible to set different access levels for different users.

Access privileges for MySQl include select (i.e. query), insert, update, delete, create, drop, reload and many others.

Casual users of database systems (e.g. the user “potiro” in the poti database system) are normally only given the “select” privilege. This means that they can only read tables using the “select” statement.

Performing MySQL queries using PHP

MySQL Queries As outlined last week, MySQL groups data

into databases. Each database consists of one or more tables. It is the tables that actually contain useful data.

An example database is the poti database on the MySQL server on sally.

The user “potiro” has access to the mysql server on sally.

Rather than having unrestricted access to all databases on the mysql server on sally, the user potiro only has access to the database poti. This access is further restricted to read access only. That is, the user potiro can only read tables in the database poti.

MySQL Select Query example

Consider a table called “books” in a database called “wea”. The table has the structure outlined below:-

To run a query that selects all columns of all rows in the table books that have the author_lastname column equal to “Barrow” we can either run a select command interactively or use the PHP mysql_query command.

Contents of books table

A form driven query can be constructed to search the table

Searchbooks.php

The result of running the previous slide

Accessing the array $a_row as an indexed

array

We can also treat each row of the output of the mysql query as an indexed array.

The best alternative for handling the output – an associative array

As shown on the previous slides, processing the result of mysql_query using an indexed array works quite well.

However, processing the result of the query as an associative array gives us a lot more flexibility.

Processing the results associative array

If we treat the results of mysql_query as an associative array, we actually have a lot more freedom with what we can do.

For example, we can alter the order in which the columns are printed out. We can also ignore some columns if we wish.

Processing the resultsassociative array (2)

Processing the resultsassociative array (3)

PHP functions returning other information about MySQL

Example usage of mysql_list_dbs()

Output of the previous slide

Sending email from PHP PHP can send email. The function to do this is called mail()

Understanding Sessions To use sessions we need to bring

together a number of concepts that we have already looked at in this course.

These are : Forms – getting and posting data

Arrays : Associative and indexed Server $_GET,$_POST and $_REQUEST

arrays, also the $_SESSION array.

PHP Sessions PHP Sessions

are a way of storing persistent data, created in one web page, on the server so it can be accessed by multiple web pages.

Example Session The next few pages show some example

php and HTML for creating a session and storing two variables “products[]” (an array) and “pos” an integer giving the index number of the next available position in the array.

All 3 pages (setup.php, view.php and unreg.php) begin with a call to session_start()

setup.php is used to create the session initially, view.php is used to view the stored data and unreg.php is used to end the session and destroy any stored data.

Session files structure

PHP Session – setup form

Running setup.php

Running setup.php

view.php

Running view.php

Ending a session - unreg.php

The session data is stored in a file that can only be read by the user running the server (at least on Unix systems this is the case)Every session has a unique session idThe stored session data is stored in a special format inside the file.When the session_start() function is called the file is created but is empty.Calling session_unreg() deletes the session file

Some more facts about sessions

Sessions normally use cookies to store the session id on the client side.The location of the session files is set by the PHP configuration file (php.ini) which uses the directive session.save_path to set it.

Yet more facts about Sessions

References:

Textbook (Meloni) The php.net site has a lot of information

about sessions and MySQL . See http://au2.php.net/session and http://au2.php.net/mysql

There is a good discussion of sessions at http://www.oreilly.com/catalog/webdbapps/chapter/ch08.html

In addition, a search on Google will bring up many other websites.