Estoy haciendo una activación de usuarios a través de un código ($clave) que se envía por mail. El caso es que recojo este valor por el método $_Get y coloco la variable en la consulta SQL para buscar al usuario y activarlo. El caso es que si imprimo la variable $clave con un Echo, compruebo que la clave la está tomando correctamente, pero sin embargo durante todo el proceso me toma la $clave como si estuviera vacía. ¿Qué estoy haciendo mal?
Código PHP:
   //Damos valor a $clave a través del método $_Get
$clave = $_GET["id"];
 
//Seleccionamos el usuario que corresponda con la $clave pasada
$conexion = mysql_connect("localhost","root","");
mysql_select_db("BD", $conexion);
$consulta = "SELECT * FROM usuarios_temp WHERE txt_activ = '$clave'";
$resultado = mysql_query($consulta) or die (mysql_error());
 
/*Recorremos con un bucle fetch_array los campos del registro que hemos recuperado de la tabla usuarios_temp. Todos estas variables se me quedan vacías*/
while ($registro = mysql_fetch_array($resultado)) {
$nombreusuario = $registro['nombreusuario'];
$contraseña = $registro['contraseña'];
$nombre = $registro['nombre'];
$apellidos = $registro['apellidos'];
}
 
//Liberamos los registros de la tabla
mysql_free_result($resultado);
 
//se cierra la conexión con la base de datos
mysql_close($conexion);
 
//se insertan los datos de la tabla usuarios_temp en la tabla Usuarios
function insert(){
    if ($nombreusuario = ""){
        echo "Fallo en la activación de la cuenta, el código es erróneo o ha caducado";
        return false;
    }
    else{
        global $clave;
        global $nombreusuario, $contraseña, $mail, $nombre, $apellidos;
        $fecha = date("Y-n-d");
        $conexion2 = mysql_connect("localhost","root","");
        mysql_select_db("BD", $conexion2);
        $inserta = "INSERT INTO Usuarios (fechaalta,nombreusuario,contraseña,mail,nombre,apellidos) VALUES ('$fecha','$nombreusuario','$contraseña','$mail','$nombre','$apellidos')";
        $resultadoinserta = mysql_query($inserta) or die (mysql_error());
        
        //se cierra la conexión con la base de datos
        mysql_close($conexion2);
        
        //se borra el registro de la tabla temporal
        $conexion3 = mysql_connect("localhost","root","");
        mysql_select_db("BD", $conexion3);
        $elimina = "DELETE FROM usuarios_temp WHERE txt_activ = '$clave'";
        $resultadoelimina = mysql_query($elimina) or die (mysql_error());
        mysql_close($conexion3);
        
        //informamos de que todo ha ido bien
        echo "Tu cuenta ha sido activada con éxito";
        return true;
    }
} 
    
 

