Showing posts with label functions. Show all posts
Showing posts with label functions. Show all posts

Wednesday, April 14, 2010

Exception Handling

In PHP, we will use exceptions to change the normal flow of a script if a specified error occurs.



Basic Use of Exceptions

In the example below, when an exception is thrown, it will not be executed, and PHP will try to find the matching "catch" block. If an exception is not caught, a fatal error will be issued with an "Uncaught Exception" message. Now, I will let you try to throw an exception without catching it and see what kind of error that you will get:


(click image to view)

############################################################
The Output:

Fatal error: Uncaught exception 'Exception'
with message 'Value must be 5 or below' in C:\webfolder\index.php:6
Stack trace: #0 C:\webfolder\index.php(12):
checkNum(28) #1 {main} thrown in C:\webfolder\index.php on line 6
############################################################

To avoid the error from the example above, we need to create the proper code to handle an exception. Proper exception code should include:

  • Try - A function using an exception should be in a "try" block. If the exception does not trigger, the code will continue as normal. However if the exception triggers, an exception is "thrown".
  • Throw - This is how you trigger an exception. Each "throw" must have at least one "catch".
  • Catch - A "catch" block retrieves an exception and creates an object containing the exception information.

(click image to view)

############################################################
The Output:

Message: Value must be 5 or below
############################################################

The code above throws an exception and catches it:
  1. The checkNum() function is created. It checks if a number is greater than 10. If it is, an exception is thrown.
  2. The checkNum() function is called in a "try" block.
  3. The exception within the checkNum() function is thrown.
  4. The "catch" block retrives the exception and creates an object ($e) containing the exception information.
  5. The error message from the exception is echoed by calling $e->getMessage() from the exception object.


Creating a Custom Exception Class


(click image to view)

The code above throws an exception and catches it with a custom exception class:
  1. The customException() class is created as an extension of the old exception class. This way it inherits all methods and properties from the old exception class.
  2. The errorMessage() function is created. This function returns an error message if an e-mail address is invalid.
  3. The $email variable is set to a string that is not a valid e-mail address.
  4. The "try" block is executed and an exception is thrown since the e-mail address is invalid.
  5. The "catch" block catches the exception and displays the error message.


Multiple Exception

It is possible for a script to use multiple exceptions to check for multiple conditions. It is possible to use several if..else blocks, a switch, or nest multiple exceptions. These exceptions can use different exception classes and return different error messages:


(click image to view)

(click image to view)

Thursday, April 8, 2010

Error Handling

die() Function

The example below shows a simple script that opens a text file:


(click image to view)

If the "file.txt" file does not exist, you might get an error like this:


(click image to view)

To avoid that the user gets an error message like the above, we test if the file exist before we try to access it:


(click image to view)



Custom Error Handler

It is quite simple to create a custom error handler, just by creating a function that can be called when an error occurs, and the function must be able to handle at least 2 parameters (error level & error message). The function also can accept up to 5 parameters. Please look at the description below:

Syntax:



(click image to view)



Error Report Level


(click image to view)

Let we try to create a function to handle errors:


(click image to view)

When the function above is triggered, it gets the error level and an error message. It then outputs the error level and message, and then it will terminates the script.



Set Error Handler


(click image to view)

Now, let we try testing the error handler by trying to output variable that does not exist:


(click image to view)

############################################################
The Output:

Error:
[8] Undefined variable: var
############################################################



Trigger an Error

You can trigger an error when users input the illegal data. In PHP, we will use the trigger_error() function:


(click image to view)

And the output should be something like this:

############################################################
Notice: Value must be 5 or below
in C:\webfolder\index.php on line 7
############################################################

There are several possible error types:
  • E_USER_ERROR - Fatal user-generated run-time error. Errors that can not be recovered from. Execution of the script is halte.
  • E_USER_WARNING - Non-fatal user-generated run-time warning. Execution of the script is not halte.
  • E_USER_NOTICE - Default. User-generated run-time notice. The script found something that might be an error, but could also happen when running a script normall.
The example below shows an E_USER_WARNING occurs if the var variable is bigger than 5. If an E_USER_WARNING occurs we will use our custom error handler and end the script:


(click image to view)

And the output should be something like this:

############################################################
Error: [512] Value must be 5 or below
Ending Script
############################################################



Error Logging

You maybe need to send error log to the servers logging system or remote destination, but it depend on how the error_log configuration is set in the php.ini file. In this case, it is the best way if you try to send the error log to yourself to get notified of specific errors. Lets see the code below for example:


(click image to view)

The output should be something like this:

############################################################
Error: [512] Value must be 5 or below
Administrator has been notified
############################################################

And somebody (in this case: yourself) will received mail from the code above looks like this:

############################################################
Error: [512] Value must be 5 or below
############################################################

Wednesday, April 7, 2010

Cookies

A cookie is a small file that the server embeds on the user's computer and usually used to identify a user.



Create a Cookie

Syntax:



For instance, we create a cookie named "valid_user" and assign a value "Abdul Razzaq" to it. We also specify that the cookie should expire after 30 minutes:


(click image to view)



Retrieve a Cookie Value

You will use $_COOKIE variable to retrieve a cookie value. For instance:


(click image to view)

In the following example we will use isset() function to find out if a cookie has been set:


(click image to view)



Delete a Cookie


(click image to view)



Browser Does Not Support Cookies?

There is one method to solve this problem. All you need to do is to pass the data through forms (previously described in this tutorial. Click here)

File Handling

Opening a File

We will be using fopen() function to open files in PHP: Look at the example below:


(click image to view)

Your file maybe opened in one of the following modes:


(click image to view)

The example below shows a message that is generated if the fopen() function is unable to open the specified file:


(click image to view)



Closing a File

To close an open file, we will use fclose() function:


(click image to view)

Monday, April 5, 2010

include() and require()

There are 2 functions that identical in every way, except how they handle errors:
  • include() - generates a warning, but the script will continue execution.
  • require() - generates a fatal error, and the script will stop.


include() Function

The example below shows a standard header file, called "header.php". To include the header file in a your page, use the include() function:


(click image to view)



require() Function

The example below shows an error using require() function:


(click image to view)

Error message:



The echo statement is not executed because the script stopped after the fatal error. I recommend you to use the require() function instead of include(), because script should not continue after an error.

date() Function

In the previous tutorial, you have learned the basic knowledge about PHP. I guess you all have mastered the previous tutorial so we can easily move on to the advanced tutorial. In the next tutorial, you will learn more details about PHP functions to make your system more compatible, reliable, and more interested. So, here we go!

date() Function

Syntax:



Here is the description:
  • format - specifies the format of the timestamp (required).
  • timestamp - specifies a timestamp. Default is the current date and time (optional).



Format the Date

Here are some description about the character we will used:
  • d - represents the day of the month (01-31).
  • m - represents a month (01-12).
  • Y - represents a year (in 4 digits).
You can also insert the characters like "/", "." or "-" between the letters to add additional formatting:


(click image to view)

############################################################
The Output:

2010/04/05
2010.04.05
2010-04-05
############################################################



Adding a Timestamp

The mktime() function return the Unix timestamp for a date. The Unix timestamp contains the number of seconds between the Unix epoch (January 1 1970 00:00:00 GMT) and the time specified.

Here is the syntax for mktime():



Lets see the example shows below:


(click image to view)

############################################################
The Output:

Yesterday was 04-04-2010
############################################################

Sunday, April 4, 2010

$_POST Function

The information sent from a form with the POST method is invisible to others and has no limits on the amount of information to send. For instance:


(click image to view)

When the user clicks the submit button, the URL will look like this:



The "myBiodata.php" can now use the $_POST function to collect form data:


(click image to view)

############################################################
The Output:

My name is Ajak.
I am 24 years old.
############################################################

$_GET Function

I want to tell you that the information sent with the GET method is visible to everyone (and it will displayed in the browser's address bar). It also has a limit on the amount of information to send. For instance:


(click image to view)

When the user click the submit button, the URL sent to the server could look something like below:



The "myBiodata.php" now can use the $_GET function to collect form data:


(click image to view)

############################################################
The Output:

My name is Ajak.
I am 24 years old!
############################################################

Functions

Create a PHP Function

Syntax:


(click image to view)

If you want to give a name to the function, you must give a name that reflects what function does. It can be start with a letter / underscore (and NOT a number). See the example below:


(click image to view)

############################################################
The Output:

My name is Abdul Razzaq
############################################################



Adding Parameters into Functions

The example below will write different first name, but equal last name:


(click image to view)

############################################################
The Output:

My name is Abdul Razzaq Ali.
My sister's name is Aisyah Ali.
My brother's name is Zainal Ali.
############################################################



Return a Value


(click image to view)

############################################################
The Output:

5 x 6 = 30
############################################################

Saturday, April 3, 2010

String Variables


String Variables in PHP


A string can be used directly or it can be stored in a variable. For instances:


(click image to view)

############################################################
The Output: Good Morning Everyone!
############################################################


The Concatenation Operator

The concatenation operator is used to put 2 or more string values together.


(click image to view)

############################################################
The Output:

Good Morning Everyone!
Have a nice day!
############################################################


The strlen() function

Lets try to find the length of a string:


(click image to view)

############################################################
The Output: 22
############################################################


The strpos() function

The strpos() function used to search a character within the string. If a match is found, this function will return the position of the first match. If no match is found, it will return FALSE. For instances:


(click image to view)

############################################################
The Output: 5
############################################################

Introduction to PHP Dummy

Hi everyone. In this tutorial, i will show you (especially for dummies) how to expert in PHP programming language. But first, you must know the basic of PHP. So, from now on, i will post the basic tutorial about PHP. If you have mastered the basic tutorial, then we can proceed to the advanced level of PHP language.

Another thing you all need to know is in this tutorial, you will find complete references of all PHP functions that i will post later. So, good luck everyone!