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;
}
}