What is PHP?
PHP, which stands for "Hypertext Preprocessor", is a server-side, HTML embedded scripting language used to create dynamic Web pages. Much of its syntax is borrowed from C, Java and Perl with some unique features thrown in. The goal of the language is to allow Web developers to write dynamically generated pages quickly.
In an HTML page, PHP code is enclosed within special PHP tags. When a visitor opens the page, the server processes the PHP code and then sends the output (not the PHP code itself) to the visitor's browser. It means that, unlike JavaScript, you don't have to worry that someone can steal your PHP script.
PHP offers excellent connectivity to many databases including MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, and Generic ODBC. The popular PHP-MySQL combination (both are open-source products) is available on almost every UNIX host. Being web-oriented, PHP also contains all the functions to do things on the Internet - connecting to remote servers, checking email via POP3 or IMAP, url encoding, setting cookies, redirecting, etc.
What do PHP code look like?
PHP is a rather simple language. Much of its syntax is borrowed from C except for dealing with the types of variables. You don't need to think of the types of variables at all - you just work with their values, not their types. And you don't have to declare variables before you use them.
Basic Syntax
- File name:
You should save your file with the extension .php (earlier versions used the extensions .php3 and .phtml). - Comments:
// This comment extends to the end of the line.
/* This is
a multi-line
comment */ - Escaping from HTML:
A PHP code block starts with "<?php" and ends with "?>". A PHP code block can be placed anywhere in the HTML document. - Instruction separation:
Each separate instruction must end with a semicolon. The PHP closing tag (?>) also implies the end of the instruction.
Here's a small PHP example...
<head><title>Example</title></head>
<body>
<h1><?php echo "Hello World"; ?></h1>
<?php
$txt = "This is my first PHP script";
/* This line creates the variable $txt and gives it the initial value. Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive. */
echo $txt;
?>
</body>
</html>
PHP tutorials
PHP Manual
The comprehensive PHP manual from its control center PHP.net.
For more books on PHP see Resources: Books on Web Designing.
Simple PHP mail script
This script is not only educational, but also applicable for practical Web development. It allows you to place a simple form for sending emails on any HTML page. The script shows you how to gather user input, perform form validation with PHP, and send an email.
First, make the form page mail.html (you may call it whatever you like)...
<head><title>Mail sender</title></head>
<body>
<form action="mail.php" method="POST">
<b>Email</b><br>
<input type="text" name="email" size=40>
<p><b>Subject</b><br>
<input type="text" name="subject" size=40>
<p><b>Message</b><br>
<textarea cols=40 rows=10 name="message"></textarea>
<p><input type="submit" value=" Send ">
</form>
</body>
</html>
The form contains the necessary text fields Email, Subject, Message, and the Send button. The line
<form action="mail.php" method="POST">
tells the browser which PHP file will process the form and what method to use for sending data.
When the user fills in the form and hits the Send button, the mail.php file is called...
<head><title>PHP Mail Sender</title></head>
<body>
<?php
/* All form fields are automatically passed to the PHP script through the array $HTTP_POST_VARS. */
$email = $HTTP_POST_VARS['email'];
$subject = $HTTP_POST_VARS['subject'];
$message = $HTTP_POST_VARS['message'];
/* PHP form validation: the script checks that the Email field contains a valid email address and the Subject field isn't empty. preg_match performs a regular expression match. It's a very powerful PHP function to validate form fields and other strings - see PHP manual for details. */
if (!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/", $email)) {
echo "<h4>Invalid email address</h4>";
echo "<a href='javascript:history.back(1);'>Back</a>";
} elseif ($subject == "") {
echo "<h4>No subject</h4>";
echo "<a href='javascript:history.back(1);'>Back</a>";
}
/* Sends the mail and outputs the "Thank you" string if the mail is successfully sent, or the error string otherwise. */
elseif (mail($email,$subject,$message)) {
echo "<h4>Thank you for sending email</h4>";
} else {
echo "<h4>Can't send email to $email</h4>";
}
?>
</body>
</html>
As you see, the script is simply one if ... elseif ... else statement. At first, it validates the required form fields. Note that PHP form validation is performed on the server, after sending all the data. Therefore, it would be a good idea to combine server-side form validation with PHP and client-side form validation with JavaScript in order to avoid unnecessary data sending.
If the email address is valid and subject isn't empty, the script sends the mail and displays the corresponding message. Note how the variable $email is included into the output string.
You can also use this script to implement the safe "Contact Us" function on your website. Your visitors will be able to send you a message, but your email address won't be displayed on the page and spam bots, that parse pages looking for potential email addresses, won't get it.
Just remove the Email text field from the form and replace the first line of the script with
something like...
$email = 'YourAddr@YourMail.com';
And, of course, you don't need to validate the email address in this case.
What's New
Inexpensive Web Hosting
How to choose a fast and reliable service from the bulk of cheap hosting solutions.
Easy Website builders
Easy way to build a professional looking site for commercial use or just for fun.
Dedicated IP hosting
Benefits of using a static over shared IP address.