Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2011, 04:45
Avatar de Rankxerox1984
Rankxerox1984
 
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 14 años, 3 meses
Puntos: 4
Activación casi resuelta (..pero falla)

Hola a todas y todos:

Sigo peleando con la activación de mi usuario registrado. Finalmente he optado por una estructura en Switch case con llamadas javascript (que no me convence) por problemas con header que no se resolver (se admiten ideas), pero este no es el problema que tengo.
La funcionalidad se basa en un ciclo de comprobación para verificar que el codigo de activación existe y que el usuario no ha sido activado antes (por si las flyes) si el usuario no existe (case 0 del primer switch) redirijo con JAvascript a pagina de registro y si existe deberian suceder dos cosas si no está activo, se activa y se redirije con javascript a la página principal y si existe lo dirijo a la página de registro.
El problema es que en el caso de que el usuario exista siempre me dirige a la página principal tanto si está activo como si no y no da error.
He revisado todo el código y no pillo el fallo,

¿alguien lo ve?

Muchas gracias por la ayuda,

J.

Además ¿Que hago con el Javascript? me gusta mas header location pero falla.

Código PHP:
<?php session_start();
error_reporting(E_ALL);
ini_set("display_errors"1); 
// Llamo las variables de conexión a DB  
        
require_once ('../recor/LoginDB.php'); 
         
// Abro conexión y selecciono la base de datos 
    
$connection mysql_connect($host$user$pass) or die ("Unable to connect!");  
    
mysql_select_db($db) or die ("Unable to select database!"); 
     
//Activamos el ususario 
//Recuperamos el código de activación y depuramos frente a SQLInjection 
if (isset($_GET['codigo'])) {   
        
$codeACT $_GET['codigo'];  
        
$codeACT stripslashes($codeACT); 
        
        
//Comprobamos que el codigo recibido existe en la BBDD 
        
$queryCHECK mysql_query("SELECT `codigoACT` FROM `personas` WHERE `codigoACT`=$codeACT"); 
        
$num_rows mysql_num_rows($queryCHECK);         
        switch (
$num_rows) {
        
//Si el código no existe derivamos a registro de nuevo 
        
case 0:
        
?> 
            <script language=javascript> 
                function ventanaSecundaria (URL){ 
                window.open(URL,"ventana1") 
                } 
                ventanaSecundaria("../Registro_pregunta.php");
                window.close()
            </script> 
        <?php
        
break;
        
//Si existe 
        
case 1:
        
//Verificamos que el usuario no ha sido activado con anterioridad
        
$queryCHECKACT mysql_query("SELECT `activo` FROM `personas` WHERE `codigoACT`=$codeACT");
        
$CheckAct = `activo`; 
    
        switch (
$CheckAct) {
        
//Si no está activo
        
            
case 0;
            
//Cambiamos el valor 0=desactivado  por valor 1=activado  
            
$activo="1"
             
            
//Activamos el usuario 
            
$queryACT "UPDATE personas SET `activo`=$activo Where `codigoACT`=$codeACT";  
            
mysql_query($queryACT) or die(mysql_error());  
             
            
//Y vamos a la página de inicio 
            
?> 
                <script language=javascript> 
                    function ventanaSecundaria (URL){ 
                    window.open(URL,"ventana1") 
                    } 
                    ventanaSecundaria("../Home.php");
                    window.close()
                </script> 
            <?php
    
            
break 2;
            case 
1:
            
//Si el susario ya está activo lo derivamos a la página de registro
            
?> 
            <script language=javascript> 
                function ventanaSecundaria (URL){ 
                window.open(URL,"ventana1") 
                } 
                ventanaSecundaria("../Registro_pregunta.php");
                window.close()
            </script> 
            <?php
            
break 2;
            }
        }
        }else { 
        
//En cualquier otro caso lo derivamos a registro 
        
echo "activacion incompleta.";  
        
header("location:../Registro_pregunta.php"); 
      
        } 
?>