Foros del Web » Programando para Internet » PHP »

Mantener datos de una variable al recargar la página.

Estas en el tema de Mantener datos de una variable al recargar la página. en el foro de PHP en Foros del Web. Bueno... hace mucho no posteaba una duda... generalmente busco, pero en este caso no sé como puedo buscarlo El tema es el siguiente. Tengo en ...
  #1 (permalink)  
Antiguo 28/07/2008, 19:16
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Mantener datos de una variable al recargar la página.

Bueno... hace mucho no posteaba una duda... generalmente busco, pero en este caso no sé como puedo buscarlo

El tema es el siguiente.

Tengo en una clase ( más abajo pondré el código de ejemplo, primero la explicación ), para loguear usuarios. Al momento de loguear, se toma todos los datos del usuario de acuerdo a los datos ingresados. Estos datos los meto en una var pública, luego al recargar la página, trato de recuperar esos datos ( utilizando la misma var), pero para entonces los datos se pierden.

Ej : ( no es el código original )

Código PHP:
class Login {

 
# Var qué contendrá los datos del usuario...
 
public $user_info = array();


 
# codigo........


 # Método que obtiene los datos del usuario a partir de los datos entregados
 
public function getUserInfo($u$p) {
       
// bla bla bla...
       
       // Obtenemos los datos...
       
$qry pg_query("SELECT ...... ");
       
$datos pg_fetch_all($qry);

       return ( 
$this->user_info $datos );
 }


 
# Método qué usará los datos guardados en la función anterior...
 
public function showUserInfo() {
      
// bla bla...
     
      # Imprimimos...
      
print_r($this->user_info);
 }




Eso es parte de la clase... luego, fuera de esta, llamo a los métodos de la sgte. manera :

Código PHP:

$log 
= new Login();

if ( isset(
$_POST['login_form']) ) {
     
      
// Obtenemos los datos del usuario con los datos proporcionados...
      
$log->getUserInfo($_POST['user'], $_POST['pass']);

      
//
      // 
      // Aqui creo una sesión y cookie con la info obtenida de la función anterior
      //
      //
      
$log->createUserSession();


      
//
      //
      // Aquí hago un header, para regresar al usuario 
      // a la página principal, luego de haberse logueado correctamente...
      //
      //
      
header('Location: index.php'); die();

Finalmente, en la página principal, rescato los datos del usuario...

Código PHP:
$log = new Login();
$log->showUserInfo(); 
Pero se pierden los datos qué estaban guardados en la var $this->user_info...

No sé qué hacer, omití código innecesario, que no viene al caso, el tema es : Tomo los datos del usuario, los guardo en una var, se loguea el usuario y lo regreso a la página principal, se pierden los datos.

Si hago un print_r a los datos, antes de reenviar a la página principal, se muestran correctamente.

Agradecería mucho su ayuda. Nos vemos
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #2 (permalink)  
Antiguo 28/07/2008, 19:28
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Mantener datos de una variable al recargar la página.

Holas spider_boy

Para esto te sugiero usar sesiones. Dentro de la Clase, cuando guarde los valores del usuario en esas variables, dile que los agregue también en el arreglo $_SESSION (tienes que haber iniciado la sesión —session_start()— antes de usar la clase, creo).

Entonces, como la sesión tiene valores, al momento de cargar la siguiente página, vuelves a iniciar la sesión, preguntas si hay valores dentro y los muestras desde allí, no desde la clase.

Aunque también podrías usar la clase para almacenar nuevamente dentro del objeto Login los valores obtenidos de la sesión, y así poder usar el método de la clase para mostrar los datos más ordenadamente.
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
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 01:01.