Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2006, 18:33
Avatar de kalolo
kalolo
 
Fecha de Ingreso: abril-2005
Mensajes: 65
Antigüedad: 19 años, 1 mes
Puntos: 0
Guardar Objetos en sesion

Saludos, tengo un problema, cree un formulario con datos basicos de usuario, estos los guardo en un objeto, y este objeto lo guardo en la sesion. Entonces, como ocupo guardar y guardar usuarios... hice una arreglo de objetos que se guarde en session,..., en teoria supongo voy bien... bueno dejo el codigo:

class.php
Código PHP:
class Usuario {
  
   public 
$Nombre;
   public 
$Edad;
   public 
$Sexo;
   public 
$Domicilio;
   public 
$Telefono;
   public 
$Salario;
   public 
$RFC;
  
   public function 
__construct($Nombre,$Edad,$Sexo,$Domicilio,$Telefono,$Salario,$RFC
   {
        
$this->Nombre $Nombre;
        
$this->Edad $Edad;
        
$this->Sexo $Sexo;
        
$this->Domicilio $Domicilio;
        
$this->Telefono $Telefono;
        
$this->Salario $Salario;
        
$this->RFC $RFC;
        
$this->Campos = array("Nombre""Edad""Sexo""Domicilio""Telefono""Salario""RFC");
        
   }
  
   public function 
__destruct() {

   }
   public function 
imprime()
   {
    echo 
$this->Nombre;
    echo 
$this->Nombre;
    echo 
$this->Edad;
    echo 
$this->Sexo;
    echo 
$this->Domicilio;
    echo 
$this->Telefono;
    echo 
$this->Salario;
    echo 
$this->RFC;
   }


index.php
Código PHP:
session_start(); 
echo
'<link href="estilo.css" rel="stylesheet" type="text/css">';
require 
"funciones.php";
require 
"class.php";
echo
'<title>: Probando Objetos :</title>';
pon_tabla();
@
$op=$_GET['op'];
@
$file=$_GET['archivo'];
if(
$op=="source")
{
    if(
$file=="class")
     
highlight_file("class.php");
    else
     
highlight_file("index.php");
        
}
else
{
    if(isset(
$_POST['enviar']))
    {
        if(isset(
$_SESSION['cont']))
        {        
         
$_SESSION['cont'] = $_SESSION['cont']+1;
         
$_SESSION['Objetos'][]=new Usuario($_POST['nombre'], $_POST['edad'], $_POST['sexo'], $_POST['domicilio'], $_POST['telefono'], $_POST['salario'], $_POST['rfc']);
          echo 
$_SESSION['cont']; 

         
        }
        else
        {
         
$_SESSION['cont']=1;
         
$_SESSION['Objetos']=array();         
         
$_SESSION['Objetos'][]=new Usuario($_POST['nombre'], $_POST['edad'], $_POST['sexo'], $_POST['domicilio'], $_POST['telefono'], $_POST['salario'], $_POST['rfc']);
          echo 
$_SESSION['cont'];
        }            
    }
        
/* conclusion .. todo esto esta bien.. el pedo es abajo!!!*/
        
/*
esto si jala.. pero ocupo arreglos en sesion.
$Objetos = array (); // Definimos la variable Objetos ce tipo arreglo //
// Llenamos el arreglo con objetos, realizando instancia hacia la clase usuario //
$Objetos[]=new Usuario("Carlos G. Lopez","24","Masculino","Othon Almada #119","2147046","123456","LORC-810930-KW0");
$Objetos[]=new Usuario("Victor M. Lopez","54","Masculino","eduardo lever","565863","15648","GNO-960722-751");
$Objetos[]=new Usuario("Marina de la Rosa","50","Femenino","Reyes y naranjo","154153","2142831","GNO-960722-751");

// Vaciamos nuestro arreglo de objetos, sacando tantos objetos hayamos guardado //
foreach ($Objetos as $Obj)
{
  echo '<br><span class="txt2">'.$Obj.'</span><br>';
  // Por cada objetos, tenemos una variable que guarda los tipos de campos de nuestro objetos //
    foreach($Obj->Campos as $Campo)
      echo '<span class="txt2">'.$Campo.': </span><span class="txt1">'.$Obj->$Campo.'</span><br>';

*/

        /* !!!!FUNCIONAAA!!! :@ */
        
if(isset($_POST['ejecutar']))
        {    
           echo 
'<span class="txt2">Usuarios agregados: '.$_SESSION['cont'].'</span><br>';
            foreach(
$_SESSION['Objetos'] as $Objeto)    
            {    
                
                foreach ( 
$Objeto as $Obj)
                    {
                        echo 
'<br><span class="txt2">'.$Obj.'</span><br>';
                            foreach(
$Obj->Campos as $Campos)
                              echo 
'<span class="txt2">'.$Campos.': </span><span class="txt1">'.$Obj->$Campos.'</span><br>';
                    }            
            }
        }

El problema esta en el vaciado a como veo, porque los datos al parecer si se guardan bien. Hice varios ejemplos ... dos foreach... vaciados manuales.. pero no lo logro imprimir todos los objetos de maenra correcta..



Saludos!
__________________
There is no place like 127.0.0.1

Última edición por kalolo; 21/01/2006 a las 19:23