Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO Problema al crear usuario

Estas en el tema de Problema al crear usuario en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas... Estoy creando un sitio y todo lo estoy haciendo con objetos y el 95% de la pagina ya la tengo rebien pero me tope ...
  #1 (permalink)  
Antiguo 30/11/2011, 15:02
 
Fecha de Ingreso: noviembre-2011
Mensajes: 7
Antigüedad: 12 años, 4 meses
Puntos: 2
Exclamación Problema al crear usuario

Buenas... Estoy creando un sitio y todo lo estoy haciendo con objetos y el 95% de la pagina ya la tengo rebien pero me tope con un problema al registrar nuevos usuarios.

Tengo la clase database_table.php que es la clase principal y tengo la clase user.php que es una extension de database_table.php :: Bueno alli todo bien. pero cree el archivo new_user.php donde tengo el formulario de registro y todo... El action del form es a la misma pagina new_user.php ingreso datos, valido PERO a la hora de crear el usuario me da este error Catchable fatal error: Object of class user could not be converted to string in D:\wamp\www\galeria\includes\database_table.php on line 92 y en la linea 92 tengo este codigo:

Código PHP:
Ver original
  1. <?php
  2. public function crear()
  3.     {
  4.         global $bd;
  5.         $propiedades = $this->propiedades();
  6.         $sql = "INSERT INTO ".static::$nombre_tabla." (";
  7.         $sql .= implode(",",array_keys($propiedades));
  8.         $sql .= ") VALUES ('";
  9.         $sql .= implode("','",array_values($propiedades)). "')";
  10.         if($bd->enviar_consulta($sql))
  11.         {
  12.             $this->id = $bd->insert_id();
  13.             return true;
  14.         }
  15.         else
  16.         {
  17.             return false;
  18.         }
  19.     }
  20. ?>

La linea 92 hace referencia estrictamente a esta parte del codigo

Código PHP:
Ver original
  1. $sql .= implode("','",array_values($propiedades)). "')";

y en la clase user tengo esta metodo

Código PHP:
Ver original
  1. <?php
  2. public static function nuevo_usuario($usuario,$clave,$nombre,$apellido)
  3.     {
  4.         $usuario = new user();
  5.         $usuario->usuario = $usuario;
  6.         $usuario->clave = $clave;
  7.         $usuario->nombre = $nombre;
  8.         $usuario->apellido = $apellido;
  9.         $usuario->registrado = date("Y-m-d");
  10.         return $usuario;
  11.     }
  12. ?>

Entonces ya en la hoja new_user.php despues de validar campos contraseñas y todo realizo esto:
Código PHP:
Ver original
  1. <?php
  2. $usuario = user::nuevo_usuario($usuario,$clave,$nombre,$apellido);
  3.                 if($usuario && $usuario->guardar())
  4.                 {
  5.                     echo "Usuario creado con exito. ";
  6.                 }
  7.                 else
  8.                 {
  9.                     echo "Error al crear usuario. ";
  10.                 }
  11. ?>

Y bueno se preguntaran porque llamo al metodo guardar... este metodo es una simple parte que identifica si no existe un id llama a crear(); y si existe un id llama a actualizar();

Lo que me esta partiendo la cabeza es que si hago una prueba asi:

Código PHP:
Ver original
  1. <?php
  2. $usuario = new user();
  3. $usuario->usuario = "admin";
  4. $usuario->clave = "123456";
  5. $usuario->nombre = "Mario";
  6. $usuario->apellido = "Gómez";
  7. $usuario->guardar();
  8. ?>

Asi si me crea el registro sin ningun problema pero si ya lo creo utilizando el formulario es donde me da el error: Catchable fatal error: Object of class user could not be converted to string in D:\wamp\www\galeria\includes\database_table.php on line 92

Bueno es todo, espero haberme explicado bien y sobre todo me puedan ayudar a solucionar el problema.

Pd. El sitio lo he creado desde 0 sin plantillas ni nada por el estilo todo el codigo lo e escrito linea por linea.

Etiquetas: objetos, php, php+formularios, phpoo
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 04:41.