Thursday, November 22, 2012

Form Validation and user inputs

User input should be validated on the browser whenever possible (by client scripts). Browser validation is faster and reduces the server load.
The PHP $_GET and $_POST variables are used to retrieve information from forms, like user input.

The $_GET Variable
The predefined $_GET variable is used to collect values in a form with method=”get”
Information sent from a form with the GET method is visible to everyone (it will be displayed in the browser’s address bar) and has limits on the amount of information to send.
Example
<form action=”welcome.php” method=”get”>
Name: <input type=”text” name=”fname” />
Age: <input type=”text” name=”age” />
<input type=”submit” />
</form>
When the user clicks the “Submit” button, the URL sent to the server could look something like this:
http://localhost/welcome.php?fname=Peter&age=37
The “welcome.php” file can now use the $_GET variable to collect form data (the names of the form fields will automatically be the keys in the $_GET array):
Welcome <?php echo $_GET["fname"]; ?>.<br />
You are <?php echo $_GET["age"]; ?> years old!

The $_POST Variable
The predefined $_POST variable is used to collect values from a form sent with method=”post”.
Information sent from a form with the POST method is invisible to others and has no limits on the amount of information to send.
Note: However, there is an 8 Mb max size for the POST method, by default (can be changed by setting the post_max_size in the php.ini file).
Example
<form action=”welcome.php” method=”post”>
Name: <input type=”text” name=”fname” />
Age: <input type=”text” name=”age” />
<input type=”submit” />
</form>
When the user clicks the “Submit” button, the URL will look like this:
http://localhost/welcome.php
The “welcome.php” file can now use the $_POST variable to collect form data (the names of the form fields will automatically be the keys in the $_POST array):
Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.

The PHP $_REQUEST Variable
The predefined $_REQUEST variable contains the contents of both $_GET, $_POST, and $_COOKIE.
The $_REQUEST variable can be used to collect form data sent with both the GET and POST methods.
Example
Welcome <?php echo $_REQUEST["fname"]; ?>!<br />
You are <?php echo $_REQUEST["age"]; ?> years old.

PHP $_COOKIE Variable
This variable is often used to identify a user. This is stored on the user’s computer so that every user will be identified if who are they. You can create and get the value of a cookie.
Example
setcookie() function
This function is used to create a cookie. This should appear before the <html> tag.

Syntax:

setcookie (name, value, expire, path, domain);

Example (create a cookie):

<?php
setcookie(“firstname”, “Bryan”, time()+7200);
?> //this should be written before the <html> tag
Here is an example on how to retrieve the value of a cookie:
<?php
echo $_COOKIE[“firstname”];
?>