Foros del Web » Programando para Internet » PHP »

Activación casi resuelta (..pero falla)

Estas en el tema de Activación casi resuelta (..pero falla) en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/01/2011, 04:45
Avatar de 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"); 
      
        } 
?>
  #2 (permalink)  
Antiguo 26/01/2011, 06:45
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Activación casi resuelta (..pero falla)

Te comento. En lo personal, no me agradaría hacer click en un link para activar mi cuenta y que este me redireccione hacia el formulario de registro o la página principal sin saber qué ocurrió realmente.

Yo te recomendaría mostrar un mensaje para cada caso y debajo de este agregar palabras linkeadas para que el mismo usuario elija qué hacer.

Sobre las redirecciones con Header. Para que funcionen correctamente deben encontrarse justo después de "<?php".

Suerte!
  #3 (permalink)  
Antiguo 26/01/2011, 09:35
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 14 años, 3 meses
Puntos: 4
Respuesta: Activación casi resuelta (..pero falla)

Gracias kenprod:

Quizás me expliqué mal. Este proceso de activación viene del registro previo en el que se envia un correo electrónico automáticamente y en él se explica lo que tu dices.
En cuanto al fallo en particular ¿tienes alguna idea?
Tomo nota de lo del header ¿pero por que he visto header detras de sentencias IF?

Muchas gracias por tu ayuda,

J.

Etiquetas: activación, falla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:20.