I honestly don't use any pre-built tools to do any of my work (well, with the exception of frameworks like cakePHP and Zend Framework). I don't use dreamweaver either (for personal reasons).
I can say this though: your validation isn't really validation. Better validation would be what djjjozsi described. That's coming up with a unique key (using [man]md5[/man], [man]sha1[/man], or [man]mcrypt[/man]) and storing that in a database field called "validation code" or something; matter of fact, you could even store it in your validation field where you have "yes" in the field for valid users. Then when the user comes back to validate their email, they just have to provide the same string of characters you used to create the md5 or sha1 hash.
So for your validation code generation, you'd want to use a function, something similar to:
function uniqueCode($len=10, $prev=null)
{
// Array of characters to choose from
$chars = array_merge(range('a', 'n'), range('A', 'N'), range('0', '9'), array('$', '@', '!', '&'));
$max=count($chars)-1;
$code = '';
for($i=0; $i<$len; $i++)
{
$char = $chars[rand(0, $max)];
// Don't use doubling characters...
// So if this character is the same as the previous, call the function again
if($char == $prev)
$char = uniqueCode(1, $char);
$code .= $char;
}
// We now have a valid code with no repeating characters (i.e. no BB or 00)
return $code;
}
Then you can easily encrypt that and save the encrypted string in the database. For example, I could generate this string: !&D2!HNl$5. That would be this code:
$validationCode = uniqueCode();
Then I want to encrypt it so I can store its hash in the database:
$encrypted = md5($validationCode); // could use sha1() here instead
That gives me this value for the encrypted variable: 7ff985336db428f1b623a2610ed95fce
Now, when someone comes back to your site, all you have to do is ask for their email address and the 10 character code you send them ($validationCode), or you can put that 10 character code in the URL.
Much better than asking them to type in 32+ characters between a-f and 0-9.
That's just an example of "securing" a validation.
You could also think of encrypting the email address with the validation code to make the hash more random; however, just remember however you encrypt it, that when you check it you encrypt it just the same, otherwise people won't validate.