Foros del Web » Programando para Internet » PHP »

¿Alguien sabe porque aparecen estos errores?

Estas en el tema de ¿Alguien sabe porque aparecen estos errores? en el foro de PHP en Foros del Web. Hola a todos/todas: Estoy terminando la gestión de usuarios de mi proyecto conseguí establecer todo el ciclo de activación y funcionaba bien, pero al incorporar ...
  #1 (permalink)  
Antiguo 07/02/2011, 01:12
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 13 años, 7 meses
Puntos: 4
¿Alguien sabe porque aparecen estos errores?

Hola a todos/todas:

Estoy terminando la gestión de usuarios de mi proyecto conseguí establecer todo el ciclo de activación y funcionaba bien, pero al incorporar un menú dinámico, la activación me devuelve estos errores:

Cita:
Notice: Unknown: Skipping numeric key 0 in Unknown on line 0

Notice: Unknown: Skipping numeric key 1 in Unknown on line 0
Tengo que matizar lo siguiente, a pesar de los errores se activa el usuario, lo que no va a la página principal y las variables de usuario son las mismas que tengo en el login y allí no tengo ningún error.
Os dejo TODO (lo siento) el código de la activación por si alguien puede echarme una mano.

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 `activo`=1"); 
        
$CheckAct =  mysql_num_rows($queryCHECKACT); 
        
        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());  
            
            
//Seleccionamos las variables de sesion
            
$queryVarSes "SELECT `TipoColaborador`,`TipoAdministrador`,`activo`,`silverUser`,`goldUser` FROM `personas` WHERE `codigoACT`=$codeACT";
            
$VarSes mysql_query($queryVarSes);
            
            while (
$row mysql_fetch_array($VarSesMYSQL_NUM)) {
            
            
$TipoColaborador $row [0];
            
$TipoAdministrador $row [1];
            
$activo $row [2];
            
$silverUser $row [3];
            
$goldUser $row [4];
        }
        
        
//Registramos las variables de sesión
    
            
$_SESSION["$TipoColaborador"]= $row [0];
            
$_SESSION["$TipoAdministrador"]= $row [1];
            
$_SESSION["$activo"]= $row [2];
            
$_SESSION["$silverUser"]= $row [3];
            
$_SESSION["$goldUser"]= $row [4];        
         
            
//Y vamos a la página de inicio 
            
?> 
                <script language=javascript> 
                    function ventanaSecundaria2 (URL){ 
                    window.open(URL,"ventana2") 
                    } 
                    ventanaSecundaria2("../Home.php);
                    window.close()
                </script> 
            <?php
    
            
break 2;
            case 
1:
            
//Si el usuario ya está activo lo derivamos a la página de registro
            
?> 
                <script language=javascript> 
                    function ventanaSecundaria3 (URL){ 
                    window.open(URL,"ventana3") 
                    } 
                    ventanaSecundaria3("../Registro_pregunta.php");
                    window.close()
                </script> 
            <?php
            
break 2;
            }
        }
        }else { 
        
//En cualquier otro caso lo derivamos a registro 
        
?> 
            <script language=javascript> 
                function ventanaSecundaria (URL){ 
                window.open(URL,"ventana1") 
                } 
                ventanaSecundaria("../Registro_pregunta.php");
                window.close()
            </script> 
        <?php
      
        

?>
Muchas gracias por la ayuda
__________________
J.
¿Dónde está la tecla ‘ANY’?
(H. Simpson)
  #2 (permalink)  
Antiguo 07/02/2011, 01:21
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: ¿Alguien sabe porque aparecen estos errores?

No se si solucionará tu error, pero podés probar cambiando esto:

Código PHP:
Ver original
  1. $_SESSION["$TipoColaborador"]= $row [0];
  2.             $_SESSION["$TipoAdministrador"]= $row [1];
  3.             $_SESSION["$activo"]= $row [2];
  4.             $_SESSION["$silverUser"]= $row [3];
  5.             $_SESSION["$goldUser"]= $row [4];

por esto:

Código PHP:
Ver original
  1. $_SESSION["TipoColaborador"]= $row [0];
  2.             $_SESSION["TipoAdministrador"]= $row [1];
  3.             $_SESSION["activo"]= $row [2];
  4.             $_SESSION["silverUser"]= $row [3];
  5.             $_SESSION["goldUser"]= $row [4];
  #3 (permalink)  
Antiguo 07/02/2011, 03:12
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: ¿Alguien sabe porque aparecen estos errores?

Hola walterdevel:

Muchas gracias por tu respuesta. Acabo de probar lo que indicas y con tu cambio ahora sólo sale:

Cita:
Notice: Unknown: Skipping numeric key 1 in Unknown on line 0
¿Por qué sale? ¿puedes ayudarme con un poco más de tu magia?

Muchas gracias,
__________________
J.
¿Dónde está la tecla ‘ANY’?
(H. Simpson)
  #4 (permalink)  
Antiguo 07/02/2011, 03:23
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: ¿Alguien sabe porque aparecen estos errores?

Podés probar comentando el error reporting :P, na broma...


Otra cosa que puedes probar es, luego de session_start(); registrar las variables con session_register();

Ej:

Código PHP:
Ver original
  1. session_register('TipoColaborador');

y así con las demás.

Porqué sale? es un bug de php, pero se supone que debería haberse solucionado con lo que hiciste antes.
  #5 (permalink)  
Antiguo 07/02/2011, 03:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: ¿Alguien sabe porque aparecen estos errores?

Código PHP:
Ver original
  1. while ($row = mysql_fetch_array($VarSes, MYSQL_NUM)) {
  2.            
  3.             $TipoColaborador = $row [0];
  4.             $TipoAdministrador = $row [1];
  5.             $activo = $row [2];
  6.             $silverUser = $row [3];
  7.             $goldUser = $row [4];
  8.         }
  9.        
  10.         //Registramos las variables de sesión
  11.    
  12.             $_SESSION["$TipoColaborador"]= $row [0];
  13.             $_SESSION["$TipoAdministrador"]= $row [1];
  14.             $_SESSION["$activo"]= $row [2];
  15.             $_SESSION["$silverUser"]= $row [3];
  16.             $_SESSION["$goldUser"]= $row [4];        
  17.          
  18.             //Y vamos a la página de inicio

creo que el error esta aquí, asignaste variables que nunca usaste, ademas $row después del ciclo queda fuera de contexto. Tiene que asignar las variables $tipoColaborador, $tipoAdministrador, etc. a la sesión, ejemplo:
Código PHP:
Ver original
  1. $_SESSION['TipoColaborador']= $TipoColaborador;
__________________
Saludos.
  #6 (permalink)  
Antiguo 07/02/2011, 17:31
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: ¿Alguien sabe porque aparecen estos errores?

Hola Jaime/Walterdevel:

Disculpad que abuse de vuestra confianza, pero es que lo de las sesiones me tiene muy despistado. A pesar de haber escrito las variables como indicais tanto en la página de activación:

Código PHP:
$_SESSION["TipoColaborador"]= $TipoColaborador;
            
$_SESSION["TipoAdministrador"]= $TipoAdministrador;
            
$_SESSION["activo"]=$activo;
            
$_SESSION["silverUser"]= $silverUser;
            
$_SESSION["goldUser"]= $goldUser
Como en la página de destino al declararlas:

Código PHP:
<?php session_start();

            
$_SESSION["TipoColaborador"]= $TipoColaborador;
            
$_SESSION["TipoAdministrador"]= $TipoAdministrador;
            
$_SESSION["activo"]=$activo;
            
$_SESSION["silverUser"]= $silverUser;
            
$_SESSION["goldUser"]= $goldUser;
No me pasa el valor de una página a otra ¿Que he hecho mal esta vez? Según he leido session_register en php5 se ha sustituido por $_session ¿Como debo hacer para pasar el valor de la variable de session en la base de datos? (El valor es 0 ó 1).

De nuevo gracias por vuestra paciencia y vustro tiempo,
__________________
J.
¿Dónde está la tecla ‘ANY’?
(H. Simpson)
  #7 (permalink)  
Antiguo 09/02/2011, 17:26
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: ¿Alguien sabe porque aparecen estos errores?

Hola de nuevo (vuelvo a la carga):

Ya conseguí que registrara variables de sesión en la primera página de activación y checklogin . Ahora solo tengo que conseguir que las recupere en cada página mientras el usuario esté registrado.
Pero me estoy haciendo un lio y no lo consigo.
¿Alguien me puede dar una pista? o incluso la solución tampoco vendria mal.

Os pongo el código para que veais

Este funciona (pagina de registro)

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!"); 
            
$codeACT=4226143;
            
//Seleccionamos las variables de sesion
            
$queryVarSes "SELECT `TipoColaborador`,`TipoAdministrador`,`activo`,`silverUser`,`goldUser` FROM `personas` WHERE `codigoACT`=$codeACT";
            
$VarSes mysql_query($queryVarSes);
            
            while (
$row mysql_fetch_array($VarSesMYSQL_NUM)) {
            
            
$TipoColaborador $row [0];
            
$TipoAdministrador $row [1];
            
$activo $row [2];
            
$silverUser $row [3];
            
$goldUser $row [4];
        }
        
        
//Registramos las variables de sesión
    
            
$_SESSION["TipoColaborador"]= $TipoColaborador;
            
$_SESSION["TipoAdministrador"]= $TipoAdministrador;
            
$_SESSION["activo"]=$activo;
            
$_SESSION["silverUser"]= $silverUser;
            
$_SESSION["goldUser"]= $goldUser;
            
    
            echo 
"TipoColaborador es".$TipoColaborador."  ";
            echo 
"TipoAdministrador es".$TipoAdministrador."  ";
            echo 
"activo es".$activo."  ";
            echo 
"silverUser es".$silverUser."  ";
            echo 
"goldUser es".$goldUser."  ";
            
            echo 
"Var Sesion".$_SESSION["TipoColaborador"];
            echo 
"Var Sesion".$_SESSION["TipoAdministrador"];
            echo 
"Var Sesion".$_SESSION["activo"];
            echo 
"Var Sesion".$_SESSION["silverUser"];
            echo 
"Var Sesion".$_SESSION["goldUser"];
?>
Este no funciona (página "normal")

Código PHP:
<?php session_start();

            if(isset(
$_SESSION['TipoColaborador'])){$TipoColaborador 'TipoColaborador';}
            if(isset(
$_SESSION["TipoAdministrador"])){$TipoAdministrador 'TipoAdministrador';}
            if(isset(
$_SESSION['activo'])){$activo 'activo';}
            if(isset(
$_SESSION['silverUser'])){$silverUser 'silverUser';}
            if(isset(
$_SESSION['goldUser'])){$goldUser 'goldUser';}
            
            echo 
"TipoColaborador es".$TipoColaborador."  ";
            echo 
"TipoAdministrador es".$TipoAdministrador."  ";
            echo 
"activo es".$activo."  ";
            echo 
"silverUser es".$silverUser."  ";
            echo 
"goldUser es".$goldUser."  ";
            echo 
"Var Sesion".$_SESSION["TipoColaborador"];
            echo 
"Var Sesion".$_SESSION["TipoAdministrador"];
            echo 
"Var Sesion".$_SESSION["activo"];
            echo 
"Var Sesion".$_SESSION["silverUser"];
            echo 
"Var Sesion".$_SESSION["goldUser"];
            
?>
Ambas son pruebas, solo quiero conseguir pasar las variables de sesión de la primera a la última.

Muchas gracias un vez más
__________________
J.
¿Dónde está la tecla ‘ANY’?
(H. Simpson)

Etiquetas: Ninguno
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 06:46.