Foros del Web » Programando para Internet » PHP »

Problema con registro de variables en sesiones

Estas en el tema de Problema con registro de variables en sesiones en el foro de PHP en Foros del Web. Hola con todos, bueno mi problema es al registrar las variables en la sesion, en mi servidor de prueba(mi pc) todo funciona perfectamente pero el ...
  #1 (permalink)  
Antiguo 06/03/2007, 09:53
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 1 mes
Puntos: 4
Problema con registro de variables en sesiones

Hola con todos, bueno mi problema es al registrar las variables en la sesion, en mi servidor de prueba(mi pc) todo funciona perfectamente pero el problema es en el servidor remoto, solo por momentos registra las variables(ejemplo logearme por momentos lo registra y por otros nos).

No entiendo por q sucede esto..

Bueno sospecho tal vez es por q utilizo:
session_register();
session_unregister();
etc...

Aunque se dice q son ya obsoletos, pero siempre me han funcionado.

Aqui coloco parte del codigo en donde verifico si esta logeado. pag: order.php
Código PHP:
if (!session_is_registered('us_id')) {//si no esta logeado lo rediecciona para logearse
    
FunRedireccionar(FunUrl('login.php'));
}else{
    
//todas las acciones s iesta logeado 
pag: login.php
Código PHP:
   $err = new Class_Error;
    
$cli = new Class_Cliente;
    
$id $cli->Acceso($_POST['email'],$_POST['psswrd']);
    if (
$id == false) {
        
$err->ObtenerError('Error: E-mail and/or Password is not valid');
        
$error $err->VerError() . RN;
    }else {
        
$cli->ObtenerDatos($id);
        
$us_id $cli->ClienteCampos['cli_id'];
        
$us_nombre $cli->ClienteCampos['cli_nombre'];
        
$us_apellidos $cli->ClienteCampos['cli_apellidos'];
        
$us_email $cli->ClienteCampos['cli_email'];
        
session_register('us_id');
        
session_register('us_nombre');
        
session_register('us_apellidos');
        
session_register('us_email');
   
// demas acciones si es correcto el logeo... 
Bueno como vuelvo a reinterar en mi pc funciona correctamente, pero en el remoto solo de momentos ....

Espero puedan ayudarme ya q este problema me a truncado ya por 2 dias

Salud2
__________________

  #2 (permalink)  
Antiguo 06/03/2007, 11:08
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años
Puntos: 11
Re: Problema con registro de variables en sesiones

A primeras podria decirte que no veo donde haces un llamado a session_start() (que te recomiendo que lo hagas aunque si no existe se llame de forma automatica), sera que en tu equipo local tienes la directiva de session : session.auto_start a ON y en tu otro servidor a OFF??,

seria bueno que hicieras una comparativa de la version de PHP en local y la del servidor remoto y ver si alguna de esas variantes no te esta afectando.

Ademas.. como me imagino que ya estas entererado de que existe la version 5 de PHP (y ya se empieza ha hablar de que tendra y que no la version 6), no crees que seria bueno que actualices tu codigo para estas versiones de PHP por ej. utilizando $_SESSION en vez de session_register() etc?

es lo primero que me viene a la mente.

un saludo.
__________________
http://dev.wsnetcorp.com
  #3 (permalink)  
Antiguo 06/03/2007, 12:11
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 1 mes
Puntos: 4
Re: Problema con registro de variables en sesiones

Gracias ebe por tu respuesta. Bueno si hago session_starst() en un archivo aparte el cual incluyo luego en todos los archivo, por lo cual descartaria esa posibilidad, bueno me imagino q debe de ser elecho de usar las funciones de sesion obsoletas. Bueno si fuese este el caso, no habria mas remedio q modificar mi script y usar $_SESSION.

Ahora si podrian se amables de darme una orientación con respecto a como utilizar esta variable super global...

las preguntas q se meocurren son:

1.
su tratamiento es igual las funciones de session?(claro e leido como utilizarlo, pero tengo dudas de como utilizarlo "si dejaran ejemplos mas complejos estaria agradecido").

2.
Soporta objetos "clases"? (ya q tengo q registrar algunos, y si es posible como trabajar con con ellos).

Tal vez sean preguntas muy obias pero necesito q me den una manito con respecto a esto.

Grax. Salud2
__________________

  #4 (permalink)  
Antiguo 06/03/2007, 12:43
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años
Puntos: 11
Re: Problema con registro de variables en sesiones

chequeate el sitio de php.net.. he estado viendo y hay varios ejemplos de como almacenar objetos en variables de session. (mira la seccion de notas)

http://www.php.net/session_register

Cita:
su tratamiento es igual las funciones de session?
mmmmm?? creo que no entiendo esta tu pregunta.. pero si quieres ejemplos mira en el enlace que te doy arriba o lo que se habla aqui.

http://www.desarrolloweb.com/faq/ses...-sesiones.html

Pero como te decia.. cambiate a $_SESSION desde ya.

saludos.
__________________
http://dev.wsnetcorp.com
  #5 (permalink)  
Antiguo 06/03/2007, 14:48
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 1 mes
Puntos: 4
Re: Problema con registro de variables en sesiones

Hola de nuevo, bueno cambie mi script y estoy utilizando $_SESSION, aparentemente todo esta bien, pero hay un detalle, q me esta enloqueciendo, pues bien:

caso:

Al querer agregar un item a mi carrito de compras, en el primer intento no lo hace, (retrocedo un pag) y vuelvo a hacer el mismo procedimiento.. o sorpresa agrega normal... Por momentos no hay problema y agrega normal, pero otros no... la verdad no entiendo a q se debe...

esta es parte del script en donde agrego el item
Código PHP:
$action $_GET['action'];
//if (!session_is_registered('cart')) {
if (!isset($_SESSION['cart'])) {
    
$cart = new Class_Carrito;        
}else {
    
$cart $_SESSION['cart'];
}

switch (
$action) {
    case 
'AddItem':
        
$pro = new Class_Producto;
        
$id_pro $_POST['id_pro'];
        
$cant_pro $_POST['cant_pro'];
        
$talla_pro $_POST['talla_pro'];
        
$pro->ObtenerDatos($id_pro);
        
$datos = array('id'        => $id_pro,
                       
'cant'    => $cant_pro,
                       
'sku'    => $pro->ProductoCampos['pro_sku'],
                       
'titulo'    => $pro->ProductoCampos['pro_titulo'],
                       
'talla'    => $talla_pro,
                       
'precio'    => $pro->ProductoCampos['pro_precio']);
        
$cart->AgregarItem($datos);        
        unset(
$datos);
        
//session_register('cart');
        
$_SESSION['cart'] = $cart;
        
FunRedireccionar(FunUrl('cart.php'));
        break;
//continua otras instrucciones 
esto es el la clase para agregar item
Código PHP:
class Class_Carrito {
    var 
$SubTotal;
    var 
$Carrito;

    function 
AgregarItem($datos){
        if (
$this->ComprobarDatos($datos)){
            for (
$i=0;$i<sizeof($this->Carrito['car_id']);$i++) {
                if ((
$this->Carrito['car_proid'][$i] == $datos['id']) && ($this->Carrito['car_talla'][$i] == $datos['talla'])) {
                    
$this->Carrito['car_cant'][$i] = $this->Carrito['car_cant'][$i] + $datos['cant'];
                    
$this->Carrito['car_monto'][$i] = $this->Carrito['car_cant'][$i] * $this->Carrito['car_precio'][$i];
                    
$agregado true;
                    break 
1;
                }else {
                    
$agregado false;
                }
            }
            if (!
$agregado) {
                if (
sizeof($this->Carrito['car_id']) == 0) {
                    
$id_car 1;
                }else{
                    
$id_car end($this->Carrito['car_id']) + 1;
                }
                
                
$this->Carrito['car_id'][] = $id_car;
                
$this->Carrito['car_proid'][] = $datos['id'];
                
$this->Carrito['car_cant'][] = $datos['cant'];
                
$this->Carrito['car_sku'][] = $datos['sku'];
                
$this->Carrito['car_titulo'][] = $datos['titulo'];
                
$this->Carrito['car_talla'][] = $datos['talla'];
                
$this->Carrito['car_precio'][] = $datos['precio'];
                
$this->Carrito['car_monto'][] = $datos['cant'] * $datos['precio'];
            }
            
$this->SubTotal array_sum($this->Carrito['car_monto']);
            return 
true;
        }else{
            return 
false;
        }
    } 
Bueno haber si con esto me pueden ayudar y para q puedan ver como se esta comportando el script pueden verlo aqui www.martial-arts-shirts.com
__________________

  #6 (permalink)  
Antiguo 06/03/2007, 16:56
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años
Puntos: 11
Re: Problema con registro de variables en sesiones

a primas puedo decirte que he visitado tu sitio y he probado agregar productos y eliminar y no he tenido ningun problema.

Has probado hacer pruebas desde otro computador fuera de "la red " en la que te encuentras??

dejame analizarlo mas de cerca.
__________________
http://dev.wsnetcorp.com
  #7 (permalink)  
Antiguo 06/03/2007, 17:06
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 1 mes
Puntos: 4
Re: Problema con registro de variables en sesiones

Hola de nuevo. Estuve leyendo y releyendo los articulos de php.net y bueno encontre el PROBLEMILLA . pues resulta q no terminaba de registrar las variables en la sesion (no me imagino por que) y lo redireccionaba (sigo sin entender por q) asi q antes de cada redireccionamiento puse " session_write_close(); " y problema solucionado...

en resumen el problema no era tanto por el uso de las funciones de session (supuestamente obsoletas), mas por el contrario por no utilizar una de ellas "session_write_close()" , "logicamente no todas son obsoletas"....

En fin problema resuelto aunque con 2 dias de restrazo...

Salud2..

Y sigo sin entender por q redireccionaba sin antes haber terminado de registar las variables...??????
__________________

  #8 (permalink)  
Antiguo 06/03/2007, 17:46
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años
Puntos: 67
Re: Problema con registro de variables en sesiones

Si son obsoletas, pero el termino obsoleto en computación no significa que no sirve para nada, significa que hay otro modo de hacer lo mismo y mejor o más fácil.
  #9 (permalink)  
Antiguo 06/03/2007, 17:59
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 1 mes
Puntos: 4
Re: Problema con registro de variables en sesiones

Hola ELJavista bueno de sierto modo tienes razon, pero lo q me saca de cuadro es el por no terminaba de registrar las variables , ya sea con session_register('var') o con $_SESSION['var'] = $var; igual seguia teniendo el problema.

Bueno no creo q sea una pregunta sin respuesta... espero respondan la interrogante...

Salud2
__________________

  #10 (permalink)  
Antiguo 06/03/2007, 18:10
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años
Puntos: 11
Re: Problema con registro de variables en sesiones

me alegro hayas solucionado tu problema y hayas compartido con todos nosotros la solucion del mismo.


un saludo.
__________________
http://dev.wsnetcorp.com
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:09.