Maak de link als volgt:
$time = time();
$hash = md5($id . $time . "somerandomsalt"); // check this again in activation.php
$link = "activation.php?id=" . $id . "&hash=" . $hash . "&time=" . $time;
Dan in activation.php
je controleert of de hash overeenkomt. Oh, en natuurlijk de tijd controleren :P
Je zou het een beetje kunnen verdoezelen om de id . te verbergen , hekje en tijd queryparameters, maar dit is de basis.