Foros del Web » Programando para Internet » PHP »

Error al perder valor de variables

Estas en el tema de Error al perder valor de variables en el foro de PHP en Foros del Web. Gracias por el interes... Tengo el siguiente problema y agradecería a quien me pudiera colaborar: En una aplicación php tengo un sistema de logeo o ...
  #1 (permalink)  
Antiguo 17/07/2006, 09:26
 
Fecha de Ingreso: mayo-2003
Ubicación: Bogotá
Mensajes: 68
Antigüedad: 14 años, 6 meses
Puntos: 0
Error al perder valor de variables

Gracias por el interes...

Tengo el siguiente problema y agradecería a quien me pudiera colaborar:

En una aplicación php tengo un sistema de logeo o validación de usuario donde se envían el tipo de identificación, el número de identificación y la clave a una página php que ejecuta el proceso mencionado, es decir, la validación de usuario. En algunas ocasiones los valores de las variables de tipo, número de idnetificación y clave se pierden es decir cuando llegan a la validación de usuario no poseen el dato (se encuentran vacías), que ingresó el usuario y esto obviamente me trae problemas al ejecutar las consultas respectivas a la base de datos.

He notado que este problema, de la pérdida del valor de la variable, pasa con alguna de las variables o con todas, es decir, existen ocasiones en que ocurre solo con el tipo de identificación y los datos correspondientes al número de identificación y la clave se conservan correctamente. Y en otras ocasiones ocurre con dos variables y después con las tres...

Este problema se presenta en distintas ocasiones, es decir no siempre, en promedio 3 veces al día, teniendo en cuenta que el promedio de ingresos de usuarios es de 2 usuarios por segundo, en promedio 7000 ingresos diarios. Cabe anotar que dicha aplicación actualmente se encuentra en producción y ha venido trabajando correctamente desde hace un año.

También se debe anotar que la aplicación se ejecuta en dos ambientes diferentes y experimenta el mismo error. Los ambientes corresponden a las siguientes configuraciones:

Apache 2.0.40
PHP 4.3.0

y

Apache 2.0.49
PHP 4.3.6


El único cambio notable que se ha realizado, previo al problema, fue cambiar el parámetro memory limit de la configuración del php, de los dos ambientes, variando el valor de 8 MB a 64 MB. Se hizo la prueba de restaurar el valor de uno de los ambientes a 8 MB, pero a pesar de esto el error se hizo presente nuevamente. Al parecer al cambio del parámetro no influye para que se ocasione el error.

Como se pueden dar cuenta no tengo certeza de la fuente del error, entonces agradecería a quien me pueda colaborar porque en verdad no he dado con la causa...
__________________
diegofff
  #2 (permalink)  
Antiguo 17/07/2006, 09:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 11 años, 6 meses
Puntos: 2122
para darte una mejor opinion, nescesitariamos ver el codigo, lo que puede pasar es que el register globals este en "on" y por alguna parte de tu codigo re-escribas variables, o algun error similar.

Esto te lo digo sin ver codigo, viendo codigo seguro te podremos dar una respuesta mas acertada :)
  #3 (permalink)  
Antiguo 17/07/2006, 09:58
 
Fecha de Ingreso: mayo-2003
Ubicación: Bogotá
Mensajes: 68
Antigüedad: 14 años, 6 meses
Puntos: 0
Pues register globals si se encuentra en "on", lo cual es necesario.





Esta es la página que recibe los parámetros: $cedusu $pas $tipid y ejecuta la validación de usuario...


Código PHP:
<?php
session_cache_limiter
('nocache');
session_start();
        
include(
'../lib/glolibdb.inc');
include(
'../lib/glolibcri.inc');
include(
'../lib/glolibutil.inc');
include(
'../conf/glolibconf.inc');
include(
'../lib/glolibsoc.inc');
include(
'../lib/glolibdbdatacas.inc');
include(
'../lib/glolibseg.inc');


//---------------------------REGISTRO Y LECTURA DE VARIABLES DE SESION------------------------

//registra en la sesión las variables idusu con el número de la cédula recibido de la página de logeo
            
            
$_SESSION['vs_cambioclave']="";
            
settype($cedusu,"string");
            
$_SESSION['vs_idusu']=$cedusu;
            
settype($tipid,"string");
            
$_SESSION['vs_tipidusu']=$tipid;
            
settype($pas,"string");
            
$_SESSION['vs_claveusu']=DCcriptcoo($pas);
            
$_SESSION['vs_claveusuingresada']=$pas;
            
$_SESSION['vs_cambioclave']=$cambioclave;
            
$_SESSION['vs_llave']=$llave;
            
$_SESSION['vs_inicial']=$inicial;        
            
            if (
$_SESSION['vs_textoError'] == "") {
                    
$_SESSION['vs_textoError'] = retornarTextoErrorApp();
                    }                    

echo 
" <HTML>";
echo 
" <HEAD>";    
echo 
" </HEAD>";
echo 
" <BODY>";        
//--------------------------------VALIDAR SI ES USUARIO ADM BD O USUARIO ADMINICIALIZADOR------------------------------------                
        //-------------------------------------VALIDAR ACTIVIDAD DE LA BASE DE DATOS------------------------------------        
        //Determinar que tipo de usuario es: Administrador o Usuario Normal - 0, Administrador SSO - 1.
         
$valUsuAdm validarUsuarioAdmBD();         

        
//Si el usuario es Administrador Normal    Verifica que la base de datos se encuentre activa.
         
if ($valUsuAdm == 0
            {
             
validarActBD();                
            }
        
//--------------------------------------------------------------------------------------------------------------
                
        //-------------------------------------VALIDAR USUARIO------------------------------------

            
$resultadoValidarUsuario=validarUsuario($valUsuAdm);
            
            switch(
$resultadoValidarUsuario){
                case 
1//caso 1: Cuando el usuario ingreso sin problemas y cuando el usuario usuario solicitó el cambio de clave verificando la caja en la página de logeo
                        
echo " <script> window.open(\"glovalidanav.php\",\"_top\" ); </script>   ";                                            
                        break;
                case 
2//caso 2: La validación de usuario solicitó el cambio de clave. Por codigo de bloqueo o por validación de tiempo de vencimiento de clave
                        
$_SESSION['vs_cambioclave']=1;                
                        echo 
" <script> window.open(\"glovalidanav.php\",\"_top\" ); </script>   ";                    
                        break;
                default: echo 
" <script> window.open(\"glovalidanav.php\",\"_top\" ); </script>   ";                
                        break;
            }                    
            
        
//-----------------------------------------------------------------------------------------

echo " </body>";
echo 
" </html>";
?>
__________________
diegofff
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:01.