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

Convertir clase de php4 a php5

Estas en el tema de Convertir clase de php4 a php5 en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola Amigos: Uso una clase para tratar con bases de datos, y la uso en muchisimas aplicaciones, al migrar a un nuevo servidor me he ...
  #1 (permalink)  
Antiguo 13/11/2006, 02:06
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Exclamación Convertir clase de php4 a php5

Hola Amigos:

Uso una clase para tratar con bases de datos, y la uso en muchisimas aplicaciones, al migrar a un nuevo servidor me he dado cuenta que esa funcion no está funcionando correctamente. He leido que se han hecho modificaciones en cuanto al tratamiento de clases. Alguien me podria ayudar a modificar, si no es mucho trabajo porque a lo mejor conviene mas cambiar las aplicaciones, la clase? El codigo es el siguiente

Código PHP:
<?php

class db{

    
//     global variables
    
var $mySQLserver;
    var 
$mySQLuser;
    var 
$mySQLpassword;
    var 
$mySQLdefaultdb;
    var 
$mySQLaccess;
    var 
$mySQLresult;
    var 
$mySQLrows;
    var 
$mySQLerror;
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Connect($mySQLserver$mySQLuser$mySQLpassword$mySQLdefaultdb){
        
/*
        # Connect to mySQL server and select database
        #
        # - parameters #1:        string $mySQLserver, mySQL server
        # - parameters #2:        string $mySQLuser, mySQL username
        # - parameters #3:        string $mySQLpassword, mySQL password
        # - parameters #4:        string mySQLdefaultdb, mySQL default database
        # - return                error if encountered
        # - scope                    public
        */

        
$this->mySQLserver $mySQLserver;
        
$this->mySQLuser $mySQLuser;
        
$this->mySQLpassword $mySQLpassword;
        
$this->mySQLdefaultdb $mySQLdefaultdb;
        
$temp $this->mySQLerror;
        
$this->mySQLerror FALSE;
        
$this->mySQL_access = @mysql_connect($this->mySQLserver$this->mySQLuser$this->mySQLpassword);
        @
mysql_select_db($this->mySQLdefaultdb);
        
$this->dbError("dbConnect/SelectDB");
        return 
$this->mySQLerror $temp;
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Select($table$fields="*"$arg=""$mode="default"){
        
/*
        # Select with args
        #
        # - parameter #1:    string $table, table name
        # - parameter #2:    string $fields, table fields to be retrieved, default *
        # - parameter #3:    string $arg, query arguaments, default null
        # - parameter #4:    string $mode, arguament has WHERE or not, default=default (WHERE)
        # - return                affected rows
        # - scope                    public
        */
        
$debug false;
        
$debugtable "user";
        if(
$arg != "" && $mode=="default"){
            if(
$debug == TRUE && $debugtable == $table){ echo "!!SELECT ".$fields." FROM ".$table." WHERE ".$arg."<br />"; }
            if(
$this->mySQLresult = @mysql_query("SELECT ".$fields." FROM ".$table." WHERE ".$arg)){
                
$this->dbError("dbQuery");
                return 
$this->db_Rows();
            }else{
                
$this->dbError("dbQuery ($query)");
                return 
FALSE;
            }
        }else if(
$arg != "" && $mode != "default"){
            if(
$debug == TRUE && $debugtable == $table){ echo "@@SELECT ".$fields." FROM ".$table." ".$arg."<br />"; }
            if(
$this->mySQLresult = @mysql_query("SELECT ".$fields." FROM ".$table." ".$arg)){
                
$this->dbError("dbQuery");
                return 
$this->db_Rows();
            }else{
                
$this->dbError("dbQuery ($query)");
                return 
FALSE;
            }
        }else{
            if(
$debug == TRUE && $debugtable == $table){ echo "SELECT ".$fields." FROM ".$table."<br />"; }
            if(
$this->mySQLresult = @mysql_query("SELECT ".$fields." FROM ".$table)){
                
$this->dbError("dbQuery");
                return 
$this->db_Rows();
            }else{
                
$this->dbError("db_Query ($query)");
                return 
FALSE;
            }        
        }
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Insert($table$arg){
        
/*
        # Insert with args
        #
        # - parameter #1:    string $table, table name
        # - parameter #2:    string $arg, insert string
        # - return                sql identifier, or error if (error reporting = on, error occured, boolean)
        # - scope                    public
        */
//        echo "INSERT INTO ".MUSER.$table." VALUES (".$arg.")";
        
if($result $this->mySQLresult = @mysql_query("INSERT INTO ".$table." VALUES (".$arg.")" )){
            return 
$result;
        }else{
            
$this->dbError("db_Insert ($query)");
            return 
FALSE;
        }
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Update($table$arg){
        
/*
        # Update with args
        #
        # - parameter #1:    string $table, table name
        # - parameter #2:    string $arg, update string
        # - return                sql identifier, or error if (error reporting = on, error occured, boolean)
        # - scope                    public
        */
        
$debug false;
        
$debugtable "stat_info";
        if(
$debug == TRUE && $debugtable == $table){ echo "UPDATE ".$table." SET ".$arg."<br />"; }    
        if(
$result $this->mySQLresult = @mysql_query("UPDATE ".$table." SET ".$arg)){    
            return 
$result;
        }else{
            
$this->dbError("db_Update ($query)");
            return 
FALSE;
        }
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Fetch(){
        
/*
        # Retrieve table row
        #
        # - parameters        none
        # - return                result array, or error if (error reporting = on, error occured, boolean)
        # - scope                    public
        */
        
if($row = @mysql_fetch_array($this->mySQLresult)){
            while (list(
$key,$val) = each($row)) {
                
$row[$key] = stripslashes($val);
            }
            
$this->dbError("db_Fetch");
            return 
$row;
        }else{
            
$this->dbError("db_Fetch");
            return 
FALSE;
        }
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Count($table$fields="(*)"$arg=""){
        
/*
        # Retrieve result count
        #
        # - parameter #1:    string $table, table name
        # - parameter #2:    string $fields, count fields, default (*)
        # - parameter #3:    string $arg, count string, default null
        # - return                result array, or error if (error reporting = on, error occured, boolean)
        # - scope                    public
        */
        
if($this->mySQLresult = @mysql_query("SELECT COUNT".$fields." FROM ".$table." ".$arg)){
            
$rows $this->mySQLrows = @mysql_fetch_array($this->mySQLresult);
            return 
$rows[0];
        }else{
            
$this->dbError("dbCount ($query)");
        }
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Close(){
        
/*
        # Close mySQL server connection
        #
        # - parameters        none
        # - return                null
        # - scope                    public
        */
        
mysql_close();
        
$this->dbError("dbClose");
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Delete($table$arg){
        
/*
        # Delete with args
        #
        # - parameter #1:    string $table, table name
        # - parameter #2:    string $arg, delete string
        # - return                result array, or error if (error reporting = on, error occured, boolean)
        # - scope                    public
        */
//        echo "DELETE FROM ".MUSER.$table." WHERE ".$arg;            // debug
        
if($arg == ""){
            if(
$result $this->mySQLresult = @mysql_query("DELETE FROM ".$table)){
                return 
$result;
            }else{
                
$this->dbError("db_Delete ($query)");
                return 
FALSE;
            }
        }else{
            if(
$result $this->mySQLresult = @mysql_query("DELETE FROM ".$table." WHERE ".$arg)){
                return 
$result;
            }else{
                
$this->dbError("db_Delete ($query)");
                return 
FALSE;
            }
        }
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function db_Rows(){
        
/*
        # Return affected rows
        #
        # - parameters        none
        # - return                affected rows, or error if (error reporting = on, error occured, boolean)
        # - scope                    public
        */
        
$rows $this->mySQLrows = @mysql_num_rows($this->mySQLresult);
        return 
$rows;
        
$this->dbError("db_Rows");
    }
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
    
function dbError($from){
        
/*
        # Return affected rows
        #
        # - parameter #1        string $from, routine that called this function
        # - return                error message on mySQL error
        # - scope                    private
        */
        
if($error_message = @mysql_error()){
            if(
$this->mySQLerror == TRUE){
                echo 
"<b>mySQL Error!</b> Function: $from. [".@mysql_errno()." - $error_message]<br />";
                return 
$error_message;
            }
        }
    }
}

?>
Muchisimas gracias de antemano
  #2 (permalink)  
Antiguo 13/11/2006, 07:41
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Cita:
Iniciado por cargosan Ver Mensaje
Uso una clase para tratar con bases de datos, y la uso en muchisimas aplicaciones, al migrar a un nuevo servidor me he dado cuenta que esa funcion no está funcionando correctamente. He leido que se han hecho modificaciones en cuanto al tratamiento de clases. Alguien me podria ayudar a modificar, si no es mucho trabajo porque a lo mejor conviene mas cambiar las aplicaciones, la clase? El codigo es el siguiente
Primero que nada, creo que por respeto a quién te lee y a quienes pueden darte una sugerencia a tu problema, deberías dedicarle el tiempo suficiente para "desmembrar" el problema y solo enviar la parte concreta donde tu supones que está fallando.

¿Si tu mismo no te tomas el tiempo, por qué deberían hacerlo los demás?

Eviten los mensajes kilométricos, las explicaciones pobres y el volcado de código "en bruto" de una aplicación entera al foro... lo único que se logra con eso es que uno no tenga tiempo ni ganas de leer tanto y extenso "ruido" (todos tenemos problemas, todos queremos soluciones "para ayer", todos estamos apurados, etc).

Segundo, concretamente, cual es el problema que te has dado cuenta y que te evidencia que no está funcionando correctamente? (obvias la información más importante, lo cual menos justifica que envíes todo el código completo de tu aplicación).

Tercero
, si supones que es por problemas entre versiones de PHP, te tomaste el tiempo de ver el manual, concretamente, el capítulo que cuenta las diferencias en entre un modelo y otro de objetos?

Hay un premisa irónica que dice "Cuando todo intento falla, indefectiblemente hay que leer el manual"
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Última edición por enriqueplace; 13/11/2006 a las 08:07
  #3 (permalink)  
Antiguo 13/11/2006, 09:48
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Hola Enrique, lo primero agradecerte tus respuestas, y el tiempo que me has concedido, ahora te contesto a tus cuestiones.

1.- Realmente no se muy bien a que se debe el fallo, solo se que se muestra en blanco, ni me da ningun mensaje de error y no me muestra los datos extraidos, he deducido que se trata de la clase ya que si actuo con las funciones de mysql funciona. Aunque no te lo creas, es una pequeña parte del problema que es sólo el fichero de la clase. Perdon por no haber explicado esto.

Por desgracia no he creado yo la clase, y no trabajo muy bien con OO, estoy en ello pero la verdad que en este caso el tiempo corre en mi contra.


2.- Evidentemente he mirado el manual y por eso en una pagina en la que tengo 23 ficheros, he conseguido centralizar el "problema". Si no profundizo mas en ello es porque no entiendo muy bien el problema. Si supiese cual es probablemente me sería mas facil encontrar la solución. Mi intención es que por medio de este foro se aporten ideas, a la misma vez que cuando puedo, yo las aporto, para solucionarlos. Si no indico mas es porque en el momento en el que escribí esto no conocia más de programación Orientada a Objetos.

Muchas gracias por tu "inestimable ayuda"

Un Saludo
Carlos

Última edición por cargosan; 13/11/2006 a las 10:08
  #4 (permalink)  
Antiguo 13/11/2006, 13:17
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Carlos, entonces el problema es claramente otro: no estás siendo metódico en la búsqueda del error. Nada tiene que ver la conclusión de "convertir clase de php4 o php5", o concretamente sobre OO, pues no has detectado aún donde está el problema y ya estás sacando una conclusión.

Fuera de si sabes o no de OO, debes aislar como puedas donde es que surge la falla, encontrando exactamente donde es que muere la aplicación.

Crea un "debug manual" y tira mensajes en cada método que ejecuta y ve validando que los datos que pasan por ahí son correctos y que cada operación se concrete.

Luego, recién cuando sepas donde "cae" la aplicación, podremos buscar una solución porque solo ahí sabremos concretamente el problema.

PD: que "no muestre nada" es común en PHP, pero no dice nada , debes ir capturando los error para saber a "ciencia cierta" donde falla (o estarás a ciegas, como ahora).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #5 (permalink)  
Antiguo 13/11/2006, 16:35
 
Fecha de Ingreso: abril-2005
Ubicación: Lima-Peru
Mensajes: 313
Antigüedad: 19 años
Puntos: 1
El primer mensaje en este post de enriqueplace deberia ponerse como post it

Intenta quitando las arrobas de las funciones, y como dice Enrique ponle "echos", en todas hasta que encuentres la causa del probleme
  #6 (permalink)  
Antiguo 14/11/2006, 01:58
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Una cosa que se me ocurre, podria ser que no se inicialice bien?, he visto que ahora el constructor se llama __construct y en cambio yo las llamadas a la clase las hacia asi:

Código PHP:
$db = new db;
$db -> mySQLerror true;
 
$conn$db -> db_Connect($SQLServer,$SQLUser,$SQLPass,$SQLdb); 
no se si al hacer el new db tendria que hacer directamente la conexion, creando una rutina __construct

Muchas gracias
  #7 (permalink)  
Antiguo 14/11/2006, 04:35
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Seguís jugando con tu suerte al hacer "prueba y error"... no busques primero "qué falla" sino "donde falla".

¿Probaste si luego de crear el objeto puede ejecutar los otros métodos?

PD: no te voy a contestar todo el manual por cada pregunta que hagas, la sintaxis es compatible hacia atrás: el constructor en PHP4 se hace usando un método con el mismo nombre de la clase, eso cambia en PHP5 pero perfectamente se puede seguir usando la sintaxis anterior, por lo tanto ahí no falla (sigues con la idea -sin fundamento- de que el cambio de versión te está afectando ).

¿Vos me dijiste que leíste el manual, particularmente el capítulo que cuenta las diferencias entre una y otra versión? ("migrar de PHP4 a PHP5").
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #8 (permalink)  
Antiguo 14/11/2006, 04:48
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Vamos a ver, primero no juego a nada, segundo pregunto eso porque he puesto mensajes de error y ni siquiera me los muestra. Si vas a ayudar, me parece perfecto, pero no creo que sea lo que estas haciendo. Me he leido el manual, si. Y no consigo encontrar "donde" esta el error.

Los cambios de una versión a otra los he leido pero evidentemente no lo estoy haciendo bien.

Si he puesto el ultimo mensaje es por si alguien ve que la llamada que siempre he hecho y ha funcionado, y con la clase que mostre más abajo encuentra algo

Gracias

PD: Enrique, intento crear el objeto, incluso creando con el supuesto constructor que he creado para probar pero, lo que me extraña es que no hace conexion siquiera cuando es la llamada a un metodo con variables extrenas

Última edición por cargosan; 14/11/2006 a las 05:01
  #9 (permalink)  
Antiguo 14/11/2006, 05:01
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Cita:
Iniciado por cargosan Ver Mensaje
Vamos a ver, primero no juego a nada, segundo pregunto eso porque he puesto mensajes de error y ni siquiera me los muestra. Si vas a ayudar, me parece perfecto, pero no creo que sea lo que estas haciendo. Me he leido el manual, si. Y no consigo encontrar "donde" esta el error.
Estás jugando porque no estás siendo metódico, o sea, prueba y error, para ver si en una de esas le embocas.

¿Donde, concretamente, colocas los mensajes de pruebas?

Ya que hablas del "constructor", ¿imprimes los parámetros y ves que no entran cargados ni despliega un mensaje diciendo "ey! soy el constructor"?

Cita:
Iniciado por cargosan Ver Mensaje
Los cambios de una versión a otra los he leido pero evidentemente no lo estoy haciendo bien.
Prueba leer de arriba a abajo, no de otra forma.

Cita:
Iniciado por cargosan Ver Mensaje
Si he puesto el ultimo mensaje es por si alguien ve que la llamada que siempre he hecho y ha funcionado, y con la clase que mostre más abajo encuentra algo
*Ese* es el problema de tu clase, *eso* es lo que estoy tratando de transmitirte, pero te has puesto necio al no tratar de cambiar tu forma de trabajo... sigues prefiriendo que alguien mágicamente solucione tu problema y seguir adelante sin aportar nada tú.

Puedes seguir ofendiéndote, o puedes tratar de cambiar la actitud.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #10 (permalink)  
Antiguo 14/11/2006, 05:07
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
a ver no me ofendo, solo me ofusco porque no le encuentro solución, si aportas soluciones serán bien recibidas, porque supongo que serás mas experto que yo en estas lides.

Intento crear el objeto, incluso creando con el supuesto constructor que he creado para probar pero, lo que me extraña es que no hace conexion siquiera cuando es la llamada a un metodo con variables extrenas. Cuando he creado el constructor he asignado unos datos que estan en un fichero y he puesto un mensaje con un texto y los parametros, y no me lo muestra con lo cual supongo que no crea el objeto.

Última edición por cargosan; 14/11/2006 a las 06:05
  #11 (permalink)  
Antiguo 14/11/2006, 07:33
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Cita:
Iniciado por cargosan Ver Mensaje
a ver no me ofendo, solo me ofusco porque no le encuentro solución, si aportas soluciones serán bien recibidas, porque supongo que serás mas experto que yo en estas lides.
Siempre me alegro de no ser un "moderador", pues debería ser "politícamente correcto". Como no lo soy, puedo expresarme con libertad y dar un tirón de orejas de vez en cuando

Ya conté hasta 100... en forma ascendente y ahora tuve que repetirlo de forma descendente (porque la primera vez no me hizo ningún efecto).

Esto es como cuando aprendes artes marciales, y es algo que lo repiten como un mensaje "enlatado" en todas las películas del tema: "no busques el maestro afuera, búscalo dentro tuyo". Tu estás buscando que te den de comer en la boca, yo estoy tratando de transmitirte que pesques por ti mismo y aprendas a ser auto-suficiente (de lo contrario, te tendremos dentro de unos días en el foro con algún problema similar relacionado con objetos).

Y concretamente, no pasa por que sea o no experto en algo, el problema concreto eres tú y tu forma no-metódica de proceder ante un problema, y que además, esperas que los demás resuelvan tu problema.

Cita:
Iniciado por cargosan Ver Mensaje
Intento crear el objeto, incluso creando con el supuesto constructor que he creado para probar pero, lo que me extraña es que no hace conexion siquiera cuando es la llamada a un metodo con variables extrenas. Cuando he creado el constructor he asignado unos datos que estan en un fichero y he puesto un mensaje con un texto y los parametros, y no me lo muestra con lo cual supongo que no crea el objeto.
Veamos, puedes copiar "exactamente" el método constructor con los agregados para probarlo, y de que forma pruebas la clase para poder decir que no funciona? (con la mínima cantidad de código, plis).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #12 (permalink)  
Antiguo 14/11/2006, 12:47
foo
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
Antigüedad: 18 años, 2 meses
Puntos: 0
prueba habilitanto el reporte de errores, para ver si por ahi te muestra algun mensaje util
  #13 (permalink)  
Antiguo 15/11/2006, 03:28
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
creo que es un problema de includes

Última edición por cargosan; 15/11/2006 a las 03:43
  #14 (permalink)  
Antiguo 15/11/2006, 03:40
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Pregunta importante

Tenia antes la inclusion de ficheros, de la siguiente manera

Código PHP:

 
include("admin/funciones.php");
 include(
"admin/conf.php"); 
y dentro del fichero funciones.php

Código PHP:

 
include("clases/db_class.php"); 
Ahora he cambiado de la siguiente manera

Código PHP:
 include("admin/clases/db_class.php");
 include(
"admin/funciones.php");
 include(
"admin/conf.php"); 
y me funciona!!! y lo mas raro para mi, antes en el antiguo servidor me daba un error diciendo que no podia redeclarar la clase. Hay algo en php5 que influya en la forma de realizar los includes que se me haya escapado? Es por la nueva forma de OO que tiene php5?


Muchas gracias
  #15 (permalink)  
Antiguo 15/11/2006, 08:03
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
¡¡¡¡aaaaaaahhhhhhhggggg!!!

¡Obviaste información de error! ¡sigues demostrando que no leiste el manual! ¡y que estás haciendo todo "al tanteo"!

¡Es todo lo mismo! ¡sordo! ¡necio!

Si estás cambiando todo, prueba y error, es obvio que las cosas pueden dejar de funcionar y volver a funcionar de la misma forma "mágica".

Nada de lo que hiciste está relacionado con el cambios de versiones, y menos, de objetos. Cuando se hace "testing" de algo, se debe ser sumamente ordenado y metódico. No puedes estar cambiando sin documentar los procedimientos de pruebas ni los cambios que estás haciendo. Es imposible encontrar errores y solucionarlos definitivamente así, nunca vas a entender por qué se arregló y dentro de poco vas a hacer otra consulta similar y vamos a estar en la misma situación que ahora.

Para dejarte un ejemplo gráfico: estás sentado sobre una bomba atómica y jugando a darle con un martillo.

Desisto.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #16 (permalink)  
Antiguo 15/11/2006, 08:59
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
Jaja, tranquilo Enrique.

Para cargosan:
PHP5 agrega una función mágica llamada __autoload(), PHP llama esta funcion siempre que tratas tu de cargar una clase y esta no ha sido definida.

Ahora según veo no tienes habilitado el mostrar errores, con lo cual hubiera sido mil veces mas fácil identificar que error era el que PHP estaba mostrando, te recomiendo habilitar esto para tener mas claro que problema hay.

Por último, tu problema creo es de paths e includes, asi que deberias de checar tus includes y de donde esta PHP tratando de incluir sus archivos.
  #17 (permalink)  
Antiguo 15/11/2006, 10:52
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Cita:
Iniciado por enriqueplace Ver Mensaje
¡¡¡¡aaaaaaahhhhhhhggggg!!!

¡Obviaste información de error! ¡sigues demostrando que no leiste el manual! ¡y que estás haciendo todo "al tanteo"!

¡Es todo lo mismo! ¡sordo! ¡necio!

Si estás cambiando todo, prueba y error, es obvio que las cosas pueden dejar de funcionar y volver a funcionar de la misma forma "mágica".

Nada de lo que hiciste está relacionado con el cambios de versiones, y menos, de objetos. Cuando se hace "testing" de algo, se debe ser sumamente ordenado y metódico. No puedes estar cambiando sin documentar los procedimientos de pruebas ni los cambios que estás haciendo. Es imposible encontrar errores y solucionarlos definitivamente así, nunca vas a entender por qué se arregló y dentro de poco vas a hacer otra consulta similar y vamos a estar en la misma situación que ahora.

Para dejarte un ejemplo gráfico: estás sentado sobre una bomba atómica y jugando a darle con un martillo.

Desisto.
Vamos a ver Enrique, no he estado haciendo pruebas a lo loco, decidi hacerte caso y ser más metodico, de hecho el te habia incluido las llamadas a la funcion de construcción, cuando me di cuenta de que no podian estar mal. Viendo que no me daba ningun error ni me mostraba nada intente hacer un error_reporting y tampoco me daba resultado. Cree una pagina en blanco con la clase incluida "a pelo" aunque en el otro servidor, sabia que daria un error de redefinicion de la clase para probar si de verdad veia la clase y fuen cuando me di cuenta de que no hacia bien el include, creeme que si hubiese tenido acceso al servidor y pudiese "tocar" la configuración a lo mejor lo habria resuelto antes. Y aunque no te lo creas si la ultima vez he preguntado es para saber por que me ha ocurrido esto y que no vuelva a fallar. Por eso pregunto si puede ser un fallo de configuración del servidor o fallo mio o al cambiar la forma de tomar los objetos, la verdad es que no lo sé.

Pero creo que preguntando tambien aprende la gente, y si lo que querias es "enseñarme", lo minímo que se puede hacer es dar unas pautas a seguir . De todas maneras muchas gracias por tu colaboración.

Un saludo
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 06:06.