Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Clases de PHP 5.2.6 en PHP 5.4.16

Estas en el tema de Clases de PHP 5.2.6 en PHP 5.4.16 en el foro de PHP en Foros del Web. Saludos, he estado teniendo varios inconvenientes desde que actualicé el motor php desde mi servidor XAMPP. Actualmente, me aparece el siguiente mensaje de Error: " ...
  #1 (permalink)  
Antiguo 09/10/2013, 07:08
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 10 meses
Puntos: 21
Clases de PHP 5.2.6 en PHP 5.4.16

Saludos, he estado teniendo varios inconvenientes desde que actualicé el motor php desde mi servidor XAMPP.

Actualmente, me aparece el siguiente mensaje de Error:

"Fatal error: Class 'Cls_postgres' not found in \servidor\xampp\..... on line 3"

Código PHP:
Ver original
  1. include("../../Modelo/Cls_postgres.php");
  2.     include("../../Modelo/Cls_archivos.php");    
  3.     $archivo = new Cls_archivos();
  4. $resultado=$archivo->agregarArchivo();

En la clase Cls_postgres tengo todas las funciones para conectar la base de datos y en la clase Cls_archivos heredo las estas funciones, algo así:

Código PHP:
Ver original
  1. Class Cls_archivos extends Cls_postgres
  2. {
  3.     var $id_archivo;
  4.     var $codigo;
  5.     var $fecha;
  6.     var $direccion;
  7.  
  8.  
  9.     function agregarArchivo()
  10.     {
  11.         $this->fecha=parent::CambioFechaPostgres($this->fecha);
  12.         $sql="insert into alm_archivo (codigo, fecha, direccion, titulo) values ('$this->codigo','$this->fecha','$this->direccion', '$this->titulo')";
  13.         $resultado=parent::consultar($sql);
  14.         return $resultado;
  15.  
  16.     }
  17. }

Por favor, ¿Podrían indicarme cómo es se hace para que no aparezca este error cuando se hace la herencia de clases en PHP5.4.X?
  #2 (permalink)  
Antiguo 09/10/2013, 07:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Clases de PHP 5.2.6 en PHP 5.4.16

ajá, pero no vemos la clase Cls_postgres
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 09/10/2013, 07:22
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 10 meses
Puntos: 21
Respuesta: Clases de PHP 5.2.6 en PHP 5.4.16

Lo siento xD

Este es el contenido de la clase Cls_postgres

Código PHP:
Ver original
  1. <php
  2.  
  3. <?
  4. class Cls_postgres
  5. {
  6.     var $driver;
  7.     var $host;
  8.     var $dbname;
  9.     var $port;
  10.     var $user;
  11.     var $clave;
  12.     var $recurso;
  13.  
  14.     function __construc()
  15.     {
  16.         $this->driver= null;
  17.         $this->host=null;
  18.         $this->dbname=null;
  19.         $this->port= null;
  20.         $this->user=null;
  21.         $this->clave=null;
  22.         $this->recurso=null;
  23.     }
  24.     function obtenerValores()
  25.     {
  26.         $this->driver="driver";
  27.         $this->host="host";
  28.         $this->dbname="dbname";
  29.         $this->port="port";
  30.         $this->user="user";
  31.         $this->clave="clace";
  32.        
  33.     }
  34.     function Cls_postgres()
  35.     {
  36.         $this->obtenerValores();
  37.         $this->conexion = pg_connect("host='$this->host' dbname='$this->dbname' user='$this->user' password='$this->clave'");
  38.  
  39.     }
  40.     function obtener_objetos($recurso)
  41.     {
  42.         return pg_fetch_object($recurso);
  43.     }
  44.     function asociar($recurso)
  45.     {
  46.         return pg_fetch_assoc($recurso);
  47.     }
  48.     function obtener_array($recurso)
  49.     {
  50.         return pg_fetch_array($recurso);
  51.     }
  52.     function num_columnas($query)
  53.     {
  54.         return pg_num_rows($query);
  55.     }
  56.     function desconectar_bd()
  57.     {
  58.         pg_close();
  59.     }
  60.     function consultar($sql)
  61.     {
  62.          return pg_query($sql);
  63.     }
  64.     function obtener_todo($sql)
  65.     {
  66.         return pg_fetch_all($sql);
  67.     }      
  68.     function CambioFechaPostgres($fecha)
  69.     {
  70.         $otra_fecha= explode("/", $fecha);// en la posición 1 del arreglo se encuentra el mes en texto.. lo comparamos y cambiamos
  71.       //$buena= $otra_fecha[0]."/".$otra_fecha[1]."/".$otra_fecha[2];// volvemos a armar la fecha
  72.  
  73.         $buena= $otra_fecha[2]."-".$otra_fecha[1]."-".$otra_fecha[0];// volvemos a armar la fecha
  74.         return $buena;  
  75.     }
  76.     function PostgresFecha($fecha)
  77.     {
  78.         $otra_fecha= explode("-", $fecha);// en la posición 1 del arreglo se encuentra el mes en texto.. lo comparamos y cambiamos
  79.       //$buena= $otra_fecha[0]."/".$otra_fecha[1]."/".$otra_fecha[2];// volvemos a armar la fecha
  80.         $buena= $otra_fecha[2]."-".$otra_fecha[1]."-".$otra_fecha[0];// volvemos a armar la fecha
  81.         return $buena;  
  82.     }
  83.  
  84. }
  85.  ?>
  86.  
  87.  
  88. ?>
  #4 (permalink)  
Antiguo 09/10/2013, 07:41
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Clases de PHP 5.2.6 en PHP 5.4.16

¿porque tienes una doble apertura de tags de PHP?

además, deberías normalizar a la estructura de POO en PHP 5.3+, dejar de usar var por ejemplo por public, private o protected. y usar PDO
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 09/10/2013, 08:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Clases de PHP 5.2.6 en PHP 5.4.16

Si pretendes usar PHP de manera profesional te sugiero leer lo siguiente: http://phptherightway.com/

Como ya te han dicho, tu código está bastante des actualizado, y esa es una gran fuente de problemas.

Además debes usar la etiqueta de apertura <?php en lugar de solo <?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 09/10/2013, 12:35
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 10 meses
Puntos: 21
Respuesta: Clases de PHP 5.2.6 en PHP 5.4.16

Pue si, era eso, y la forma en que hice mal las cosas hace un tiempo atrás, la clase conexión quedó así, resumiendo un poco:
Código PHP:
Ver original
  1. <?php
  2. class Cls_postgres
  3. {
  4.     private $driver, $host, $dbname, $port, $user, $clave, $recurso;
  5.  
  6.     function obtenerValores()
  7.     {
  8.         $this->driver="driver";
  9.         $this->host="host";
  10.         $this->dbname="dbname";
  11.         $this->port="port";
  12.         $this->user="user";
  13.         $this->clave="clace";
  14.        
  15.     }
  16.     function Cls_postgres()
  17.     {
  18.         $this->obtenerValores();
  19.         $this->conexion = pg_connect("host='$this->host' dbname='$this->dbname' user='$this->user' password='$this->clave'");
  20.     }
  21. }

Todavía tengo que seguir actualizando varios archivos con la etiqueta de apertura "<?php" que no era tan estricta en versiones anteriores...

Gracias ^^
  #7 (permalink)  
Antiguo 09/10/2013, 16:03
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Clases de PHP 5.2.6 en PHP 5.4.16

genial, espero tengas más cuidado la proxima vez que migres de versión de PHP, recuerda que hacerlo en producción puede ser una locura y debes de preparar una contingencia.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: clases, herencia, migración, xampp
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 18:51.