No es que no funcionen los elseif, tienes que ver que hacen y porque!!!
if(isset(GET, codigo)) ---> Esto verifica que se haya proporcionado el codigo
elseif(numrows?) --> ELSE, es decir, no se proporciono codigo, esto no deberia ir aqui
De hecho, gracias a esa falla logica, todo el script falla, debiendo ser algo un poco mas simple:
Código PHP:
Ver original<?php
// Llamo las variables de conexión a DB
require_once ('../recor/LoginDB.php');
// Abro conexión y selecciono la base de datos
//Activamos el ususario
//Recuperamos el código de activación y depuramos frente a SQLInjection
if (isset($_GET['codigo'])) { $codeACT = $_GET['codigo'];
//Comprobamos que el codigo recibido existe en la BBDD
$queryCHECK = mysql_query("SELECT `codigoACT` FROM `personas` WHERE `codigoACT`=$codeACT");
if ($num_rows==1){
//Si existe
//Activamos el usuario
$queryACT = "UPDATE personas SET `activo`=1 Where `codigoACT`=$codeACT";
//Y vamos a la página de inicio
header("location:../home.php"); // Despues de un header de redirección conviene detener el script
}
}
//No se proporcionó código o no fue encontrado
header("location:../Registro_pregunta.php"); // Este echo sale sobrando
echo "activacion incompleta.";
?>