Foros del Web » Programando para Internet » PHP »

PHP OO Clase no se como retornar

Estas en el tema de Clase no se como retornar en el foro de PHP en Foros del Web. Buenas hace tiempo que no escribo por aqui a ver si me podrian ayudar. Tengo esta clase @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php class ...
  #1 (permalink)  
Antiguo 12/11/2012, 09:45
 
Fecha de Ingreso: octubre-2010
Mensajes: 156
Antigüedad: 13 años, 6 meses
Puntos: 0
Clase no se como retornar

Buenas hace tiempo que no escribo por aqui a ver si me podrian ayudar. Tengo esta clase

Código PHP:
Ver original
  1. <?php
  2. class mover
  3. {
  4.     protected $non;
  5.     protected $resultado;
  6.  
  7.  
  8.  
  9.  
  10.     public function levantar($nombre,$size,$nombre_temp,$direcci)
  11.     {
  12.        
  13.        
  14.         $tmp = $nombre;
  15.         $tamaño = $size;
  16.         $nombre_temp = mover::limpiar($nombre_temp);
  17.         $direccion = '/home/html/hosting/archivos/'.$direcci."/";
  18.         $direccion_tmp = '/tmp/'.$nombre_temp;
  19.         $errores = array();
  20.         if($tamaño > 0)
  21.         {
  22.             //DEJAMOS TODO A MINUSCULA
  23.             $archivo = strtolower($nombre_temp);
  24.             //LIMPIAMOS DE LOS CARACTERES RAROS    
  25.             $archivo2 = mover::limpiar($archivo);
  26.             //VERIFICAMOS Y FILTRAMOS LAS EXTENCIONES DE ARCHIVO
  27.             $xx = array('jpg','JPEG','JPG','png', 'gif', 'bmp');
  28.             $filtro = end(explode(".",$archivo2));
  29.             //ASIGNAMOS UN NOMBRE AL ARCHIVO CON LA RUTA
  30.             ##Generamos un numero aleatorio para colocar al inicio del archivo
  31.             $rand = rand(1000000000,9999999999);
  32.             $upload = $direccion.$rand."_".$archivo2;
  33.             $nombre_archivo = $rand."_".$archivo2;
  34.             //GUARDAMOS EL NOMBRE DEL ARCHIVO
  35.             $this->non = $nombre_archivo;
  36.             //GUARDAMOS EN UN ARRAY SI TIENE PROBLEMA LA EXTENCION
  37.             if(in_array($filtro,$xx) == false)
  38.             {
  39.                 $errores[] = 'Extencion no permitida';
  40.             }
  41.             if(empty($errores))
  42.             {
  43.                 if(move_uploaded_file($nombre,$direccion_tmp))
  44.                 {
  45.                     //
  46.                 }
  47.            
  48.             }
  49.             else
  50.             {
  51.                 foreach($errores as $error)
  52.                 {
  53.                  echo $error."<br />";
  54.                 }
  55.             }
  56.         }
  57.     }//fin metodo
  58. }
  59.  
  60.  
  61. //Extendemos la clase para poder imprimir el nombre del
  62. //archivo que se le asigno
  63. class nombre extends mover
  64. {
  65.  
  66.     public function ver()
  67.     {
  68.      $this->resultado=$this->non;
  69.     }
  70.  
  71. }
  72. ?>

Funciona todo, mueve el archivo asigna el nombre, pero mi problema viene aqui

Trato de guardar en una variable el metodo ver() pero me duvuelve vacio y no guarda el nombre del archivo en la bd

Código PHP:
Ver original
  1. if($_FILES <> "")
  2.     {
  3.         $up = new nombre();
  4.         $up->levantar($_FILES['archivo']['tmp_name'],$_FILES['archivo']['size'],$_FILES['archivo']['name'],'pruebita');
  5.         $ARCHIVO = $up->ver();
  6.                
  7.                        
  8.     }
  9.    
  10.     $nombre = $_POST["nombre"];
  11.     $estado = $_POST["estado"];
  12.    
  13.    
  14.     $sql = "INSERT INTO pepe (id, nombre, archivo, estado) VALUES (null, '$nombre', '$ARCHIVO', '$estado')";
  15.     $res = mysql_query($sql, $conexion);
__________________
..
  #2 (permalink)  
Antiguo 12/11/2012, 10:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Clase no se como retornar

Pues el problema es que nunca haces un return en tu método ver()...

Aparte ¿para que extender la clase? Lee sobre el principio de Liskov...
  #3 (permalink)  
Antiguo 13/11/2012, 04:15
 
Fecha de Ingreso: octubre-2010
Mensajes: 156
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Clase no se como retornar

Muchas gracias GatorV, nunca retorne.. Busque informacion sobre el principio de Loskov, pero no entendi muy bien.. por lo menos como aplicar en mi caso..
__________________
..

Etiquetas: clase, html, mysql, retornar, sql, variables
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 21:39.