Writing Secure PHP, Part 4
11 September 2008 | 57 comments | code, coding, development, mysql, php, programming, security, tips, tutorial, web, webdesign, webdev
The fourth part of the Writing Secure PHP series, covering cross-site scripting, cross-site request forgery and character encoding security issues.
Ruby on Rails Cheat Sheet
11 January 2006 | 94 comments | rails, cheatsheet, development, tutorial, reference, programming, web, ror, cheatsheets, rubyonrails, ruby, tutorials
A quick reference guide for Ruby on Rails, containing the default directory structure, predefined variables, methods, reserved words and regular expression syntax.
CSS Cheat Sheet (V1)
30 April 2005 | 221 comments | webdev, cheatsheet, development, tutorial, reference, tips, programming, design, web, webdesign, css, html, howto
A quick reference guide for CSS, listing selector syntax, properties, units and other useful bits of information.
Writing Secure PHP, Part 1
16 July 2004 | 109 comments | code, coding, development, mysql, php, programming, security, tips, tutorial, web, webdesign, webdev
Learn how to avoid some of the most common mistakes in PHP, and so make your sites more secure.
The Box Model For Beginners
9 July 2004 | 41 comments | box, boxmodel, css, design, html, model, reference, tips, tutorial, webdesign, webdev
An explanation of what the box model is and how it is treated by different user agents.
Faux Columns for Liquid Layouts
22 June 2004 | 30 comments | tutorial, html, fluid, layout, reference, liquid, design, web, faux, webdesign, css, hacks
Using CSS for layouts can be a problem when using backgrounds for two columns that are not of equal length. This article expands on the solution to this problem from AListApart.
Output Caching for Beginners
9 June 2004 | 121 comments | code, cache, webdev, performance, article, development, tutorial, programming, php, web, caching
High-traffic sites can often benefit from caching of pages, to save processing of the same data over and over again. This caching tutorial runs through the basics of file caching in PHP.
Ternary Conditionals
2 June 2004 | 28 comments | webdev, development, tutorial, programming, ternary, tips, php, coding
Ternary conditionals (using the "ternary operator", sometimes known as the "trinary operator") are a part of PHP that many simply steer clear of, despite their usefulness. They can save a great deal of time when writing code and can make for much easier code to read and edit later on. They look strange to many people though, which might explain why they are not as widely used as they could be.
Consider a normal conditional statement, like the following. It begins by evaluating a condition. If that condition is true, it follows one path. Sometimes, an alternate path is specified if the condition is not true (the 'else' section). Sometimes, you can have a list of several possible conditions in a row (using 'if ... elseif ... else' or 'switch ... case').
if (condition) {
variable = value-if-true;
} else {
variable = value-if-false;
}
However, a simple situation like the above is a perfect candidate to convert to a ternary conditional. You have one condition, and if it is true, the variable is given a certain value - if false, a different value. A ternary conditional can accomplish the same thing, concatenating it into one simple line of code.
variable = (condition) ? value-if-true : value-if-false;
Ternary conditionals take the above form. You do not necessarily need to have a "variable = " section (as you will see later on), but usually that is what this is used for. The above does exactly the same thing as the 'if ... else' statement earlier. If the condition evaluates to true, the variable will be assigned the value in the "value-if-true" section, otherwise it will receive the "value-if-false" value.
In practice, you could use the ternary conditional to, for example, greet a user depending on whether it is currently morning or afternoon. Using traditional code ('if ... else'), you might write something like this:
if (date("G") < 12) {
echo 'Good morning';
} else {
echo 'Good afternoon';
}
The same statement, using a ternary conditional, would look like this:
echo (date("G") < 12) ? 'Good morning' : 'Good afternoon';
Note that in this example, we've used "echo", rather than assigning a value to a variable. The above is exactly the same as this, which does make use of a variable:
$greeting = (date("G") < 12) ? 'Good morning' : 'Good afternoon';
echo $greeting;
Another situation in which I often use ternary conditionals is when displaying rows of data. It can often be much easier for a user to see what is going in if the rows alternate background colour, and the following code can be useful for that:
$i = 1;
echo '<table>';
while ($data = mysql_fetch_array($result)) {
echo ' <tr>';
echo ' <td bgcolor="';
echo (($i % 2) == 0) ? '#eee' : '#ddd' ;
echo '">';
echo $data['field'];
echo ' </td>';
echo ' </tr>';
$i++;
}
echo '</table>';
The above code will cycle through a result set, displaying each item in a new row. The background colour of the row will alternate between shades of grey, controlled by the ternary conditional on the bold line.
Ternary conditionals make for tidier code. Use them - if not for yourself, then for whoever is going to end up editing your scripts!
Email Address Validation
1 June 2004 | 203 comments | code, development, email, php, programming, regex, regexp, security, tutorial, validation, webdesign
How to validate email addresses according to ISO standards with PHP.
CSS Selectors allow you to specify the types and groups of elements you want to apply certain styles to.
An introduction to PHP, one of the most popular programming languages on the web.