Si generas un e-mail en HTML donde le envias ese link de activación tipo:
Código PHP:
<a href="http://www.tal.tal/activar.php?codigo=987asdf8978asdf">activar</a>
En tu script "activar.php" deberias preguntar el nombre de usuario y su contraseña (en un formulario HTML) .. añade tu "codigo" en un campo hidden del mismo
Código PHP:
<input type="hidden" name="<? echo $_GET['codigo'] ?>">
Con todo eso .. en tu "procesar_Activacion.php" (script que valides a tu activación) .. haces una consulta tipo:
Código PHP:
$sql="SELECT * FROM usuarios WHERE codigo='".$_POST['codigo']."' AND usuario='".$_POST['usaurio']."' AND password='".$_POST['password']."'";
Si te arroja UN resultado .. entonces tu usuario es validado .. Es decir "acertó" con el código de activación .. su usuario y contraseña (por si usan tu formulario "por detras" sin ese código de activación).
A partir de ahí ya puedes hacer tu UPDATE a ese Usuario (registro) para cambiar tu "flag" del campo "user_activo" a 1.
Las consultas SQL de tu "login" del sistema deberan ser filtradas bajo el critério de:
... WHERE user_activo='1' .. y el resto de condiciones.... Así no das entrada a nadie que no se ha validado todavía.
Un saludo,