Expiring Domains with Google PageRank!

Creating a CAPTCHA with PHP

Hey there! Welcome to Making the Web - my personal blog about website development. Feel free to subscribe to my RSS feed to keep up with the latest. Alternatively, subscribe by email. Hope you enjoy this article!

CAPTCHA is the term used for the test to see whether a user is a human or a computer (spam bots…). You may have seen them on a registration form, or when entering comments into a blog.

I spent a while developing a CAPTCHA in PHP with the GD library, and so I thought I'd write an article about how to make one. This is an example of a CAPTCHA using my code:

CAPTCHA

Read the rest of this entry »

Comments (10)

Web Developers' 7 Must-Have Firefox Extensions

Firefox extensions allow you to add great tools to your browser. As a web developer, I've used extensions to assist in developing and testing my websites.

Here is my list of the must have Firefox extensions:

Firebug
This extension is by far my favourite. It allows you to edit pages live, identify JavaScript errors, debug, and more. Download

Web Developer
This adds a toolbar which allows you to disable JavaScript, add and view cookies, edit CSS, view response headers, validate the page, and more. Download

Screengrab!
This extension doesn't really help you develop your site, but it does allow you to save the entire page as an image, which may sometimes be useful. Download

IE Tab
IE Tab allows you to test you sites in Internet Explorer, without actually having to open the application up. Download

ColorZilla
ColorZilla allows you to get the colours from the page. Saves me alot of time, because I no longer have to copy the image into an application like Fireworks, then get the colour. Download

Tamper Data
This allows you to change headers and POST data, which is always useful. Download

Html Validator
Although the Web Developer toolbar allows you to validate pages, I recommend this extension because it shows you live the results of validation in the status bar. Download

If you have any other extensions which you like, feel free to leave a comment.

Comments (4)

Easiest ways to increase blog traffic

Now, I'm relatively new to blogging, and when I first started I didn't really understand how effective it was. But, as time progressed, I learnt of ways that I can increase traffic to my blog quite easily.

So, here's my list of top tips:

Submit some articles to StumbleUpon
Submitting my site to StumbleUpon was probably the best thing I've ever done. In the past month, StumbleUpon have sent my site 8,417 visits, and is by far my site's biggest refferer.

Write Useful and Relevant Articles
Now, this is the obvious one, but, some people forget that the more relevant and useful their articles are, the more people are likely to recommend it. In one 3 day period, I had one blog refer 136 visits to one of my articles. Read the rest of this entry »

Comments (1)

User Accounts with PHP and MySQL

Having a user accounts feature is something that I'd recommend to almost any website. It is one of the best ways to make visitors really feel part of your site. And, it's also gives you an idea of how many "valuable" users you have.

In this article, I'll be telling you how to create a user accounts feature, complete with a login form, registration form and "user area." To make the system, you'll need PHP and MySQL.

Read the rest of this entry »

Comments (12)

Becoming PHP6 Compatible

You may also want to read the Unofficial PHP6 Changelog to find out what is changing in version 6.

PHP developers, like all developers, want their scripts to be as compatible as possible. Often, this involves looking into the past, to see if scripts are backwards-compatible. But, we sometimes have to look into the future - to see what is changing, and to understand what we need to do to become compatible.

PHP6 is the latest, yet unreleased version of PHP. It is still under development and won't be released for some time yet. Nonetheless, it is still important that we consider the changes we know about at the moment, and write scripts which are compatible.

If you want to make use of PHP6 when it comes, you're going to have to write your new scripts so they are compatible, and possibly change some of your existing scripts. To start making your scripts PHP6 compatible, I've compiled a list of tips to follow when scripting:

Don't use register_globals
In PHP6, support for register_globals will be no more. There will be no option to turn it on or off - it will not exist. This change should not affect you, as you shouldn't really use register_globals anyway. If you don't already know, register_globals puts $_REQUEST into the global scope, so you can access the variables just like any other variable. Instead, you should access inputted data like this:

$_GET['input'];
$_POST['input'];
$_REQUEST['input'];

Read the rest of this entry »

Comments (45)

More Tips for faster PHP scripts

This post is part 2 of a 3 part series. For the other parts, visit these posts:

Tips for faster PHP scripts
Even More Tips for faster PHP scripts

Here's the list:

6. Pre-increment is faster than post-increment
Try to pre-increment, rather than post-increment, where possible. It is faster because post-increment creates a temporary variable while in the process of incrementing. So, this:

++$var;

…is faster than this:

$var++;

This rule also applies to decrementation as well. To test this assertion, I created two for loops. The first for loop used the post-increment option, while the second for loop used pre-increment instead. The total number of iterations was 10,000,000. Here are the results:

Post-increment: 2.148 seconds
Pre-increment: 1.692 seconds
Time saved: 0.456 seconds; 21.23%

7. Regular Expressions for input validation?
It is always a good idea to try and avoid regular expressions, where possible and practical. There are functions in PHP which will do exactly what some regular expressions do, but faster. Take this example:

if(ereg('[0123456789]', $number)) {
// Is integer
}else{
// Is not integer
}

It is much faster to do this instead:

if(ctype_digit($number)) {
// Is integer
}else{
// Is not integer
}

To test this, I used ereg('[0123456789]', $number) 1,000,000 times, followed by using ctype_digit($number) 1,000,000 times. Here are the results:

Regular Expressions: 2.401 seconds
ctype_digit: 0.985 seconds
Time saved: 1.416 seconds; 58.98%

8. split() or explode()
The split() function supports regular expressions, while explode() does not. It is often faster to use explode() when you do not need to use regular expressions.I done yet another test. I used split() to split a string without regular expression requirements, and then used explode() to split the same string. I repeated this 1,000,000 times. My results are:

split(): 5.453 seconds
explode(): 3.556 seconds
Time saved: 1.897 seconds; 34.79%

9. Use time() rather than date('U')
When you want to get the current Unix timestamp, it is faster to use time() rather than date('U'). To test this, I used the time() function 100,000 times, followed by date('U') 100,000 times. My results are as follows:

date('U'): 19.162 seconds
time(): 0.057 seconds
Time saved: 19.105 seconds; 99.7%

10. Fastest type of loop
In PHP, there are a number of loops available for you to use. There are while loops, do-while loops, and for loops. To see which one of these were fastest, I used each of them to perform 100,000,000 iterations. These are the loops which I used:

while(++$a<100000000){}

for(;++$a<100000000;){}

do{}while(++$a<100000000)

Here are my results:

while(++$a<100000000){}: 15.519 seconds
for(;++$a<100000000;){}: 17.577 seconds
do{}while(++$a<100000000): 13.744 seconds

As you can see, my results show that a do-while loop is 21.81% faster, compared to a for loop.

Comments (34)

Next entries » · « Previous entries
Making the Web | Chalvedon School and Sixth Form College | Messenger History | GCSE(WIKI): Simple bitesize revision for secondary school, KS4 students. | Encrypt files for free - high-grade encryption
Who's Populating The Web?