PHP Form Handling
The most
important thing to notice when dealing with HTML forms and PHP is that any form
element in an HTML page will automatically be available to your PHP
scripts.
Example
The
example below contains an HTML form with two input fields and a submit button:
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
When a
user fills out the form above and clicks on the submit button, the form data is
sent to a PHP file, called "welcome.php":
"welcome.php"
looks like this:
<html>
<body>
Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
<body>
Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
Output
could be something like this:
Welcome John!
You are 28 years old.
You are 28 years old.
Form Validation
User
input should be validated on the browser whenever possible (by client scripts).
Browser validation is faster and reduces the server load.
You
should consider server validation if the user input will be inserted into a
database. A good way to validate a form on the server is to post the form to
itself, instead of jumping to a different page. The user will then get the
error messages on the same page as the form. This makes it easier to discover
the error.
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>
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://www.w3schools.com/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!
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>
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://www.w3schools.com/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.
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.
You are <?php echo $_REQUEST["age"]; ?> years old.






0 comments:
Post a Comment