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

Problema con require('dbconfig.php') en clase MySQLConnect

Estas en el tema de Problema con require('dbconfig.php') en clase MySQLConnect en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, cree una clase singleton con metodos estaticos para encapsular lo que sería la conexion a la base de datos y los querys, por ahora. ...

  #1 (permalink)  
Antiguo 05/06/2008, 10:40
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Problema con require('dbconfig.php') en clase MySQLConnect

Hola, cree una clase singleton con metodos estaticos para encapsular lo que sería la conexion a la base de datos y los querys, por ahora.
Es bastante simple y esta basada en varios tutoriales sobre el tema que me ayudaron a crearla.

Tengo la siguiente estructura de archivos:

Programa/
__classes/
____MySQLConnect.php
__admin/
____admin_table.php
functions.php
dbconfig.php

Cuando utilizo la clase MySQLConnect en admin_table.php anda barbaro. Pero cuando la utilizo en functions.php me da el error:

Código PHP:
Warningmysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using passwordNOin C:xampphtdocsGSMonsterclassesMySQLConnect.php on line 19
[mysqlconnect:19]No se pudo conectar
Creo entender cual es el error, pero no se como solucionarlo, de eso se trata, no?

La clase MySQLConnect es la siguiente:

Código PHP:
class MySQLConnect{

    private static 
$instance NULL;
    private 
$connection;

    
//Private constructor
    
    
private function __construct() {
        require_once(
'../dbconfig.php');
    
        
$this->connection mysql_connect($host$user$pass) or die("[mysqlconnect:19]No se pudo conectar a ".$host);
        
mysql_select_db($db) or die(mysql_error());
    }

    static public function 
getInstance() {
       if (
self::$instance == NULL) {
          
self::$instance = new MySQLConnect ();
       }
       return 
self::$instance;
    }
    
    
//Closes the mySQL Connection
    
public function close(){
        if(isset(
$this->connection)){
            
mysql_close($this->connection);
            unset(
$this->connection);
        }
        
self::$instance NULL;
    }
    
    public function 
__toString() {
        return 
"MySQLConnect Class";
    }
    
    public function 
query($q){
        return 
mysql_query($q);
    }
      
  } 
Como ven, hace un require_once('../dbconfig.php'); al principio. Yo creo que al incluír el archivo dbconfig.php, en vez de pararse donde se encuentra fisicamente, se para donde esta ejecutando el script y lo va a buscar las dos veces a un directorio diferente, no se si se entiende?....

La verdad no se bien como funciona el tema. De paso quería ver si me daban un par de criticas (constructivas, siempre ;)) sobre la clase que cree.

Gracias,
Ignacio

Última edición por chitoso; 05/06/2008 a las 10:42 Razón: No quedo bien la indentacion para la estructura de archivos.
  #2 (permalink)  
Antiguo 05/06/2008, 11:46
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Hola gente, apreciaría mucho una pista, se que no es dificil. Estuve experimentando con el tema de los path, pero no encuentro solución aun.
Gracias
  #3 (permalink)  
Antiguo 05/06/2008, 16:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Hola chitoso,

Lo ideal es que uses paths absolutos, ya que como bien dices, los paths PHP los resuelve de donde se este ejecutando, es por eso que desde functions te da error.

Saludos.
  #4 (permalink)  
Antiguo 05/06/2008, 16:37
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
De acuerdo Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Bien, gracias GatorV.
El tema ahora es investigar esto de paths absolutos... quiero poder definir un path de tal manera que no tenga que modificarlo si uso mi script local o en el servidor.
Lo voy a investigar, si alguien quiere darme una pista se lo agradezco.

Saludos
  #5 (permalink)  
Antiguo 05/06/2008, 21:23
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

No hagas nunca "../", ahí es donde te pierdes.

Busca en google "3 capas y problemas con subdirectorios".

Sugerencia: crea un archivo configuracion.php en la raiz, y luego en cada subdirectorio un "falso" configuracion.php que solo incluye el de la raiz con "../configuracion.php", y obliga a que todo php incluya de forma genérica su configuracion.php.

De esta forma, como tu incluyes según donde estés parado, y esto se define según se inicie la primer invocación. Cuando no estés en la raiz, incluirás el configuracion.php falso que te lleva nuevamente a la raiz, fijando siempre el mismo punto de referencia.

A partir de ahí crea constantes que te ubiquen sin dudas la ruta a tus archivos.


Espero que se entienda la explicación
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #6 (permalink)  
Antiguo 06/06/2008, 06:48
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Excelente la explicación, y me pareció un muy buen "truco".
Sin dudas lo voy a probar y aplicar en cuanto tenga tiempo.
Gracias!
  #7 (permalink)  
Antiguo 06/06/2008, 06:50
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Ah, y, Enrique, esa pequeña clase esta inspirada entre otras fuentes, de tus tutoriales en tu blog. Así que doblemente gracias.
Y, si pudieras darme alguna crítica al respecto vos u otro usuario se los agradezco.
Saludos
  #8 (permalink)  
Antiguo 06/06/2008, 07:07
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Bueno, me alegro que se entendió... pensé que había quedado confuso

Nota: este tipo de problemas se solucionan también si haces un sistema "modular" donde todo entre por el index.php, entonces, siempre estás parado en la raiz y no tendrás este problema.

También debería solucionarse con el tema de los namespaces que está disponible en las versiones muy nuevas de PHP.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #9 (permalink)  
Antiguo 12/06/2008, 10:34
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
De acuerdo Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Bien, ahora que tuve tiempo y el sistema se iba a complejizar, aproveche para implementar la solución de Enrique, antes que las cosas se pusieran feas...

Funcionó ok. El unico 'problema' fue que en desarrollo mi aplicacion esta en C:\xampp\htdocs\app\ y en produccion esta directamente en la raiz, es decir www.sitio.com/.

Por lo cual, cuando defino HOME:
Código PHP:
define('HOME',$_SERVER[DOCUMENT_ROOT]); 
Funciona solo para uno de los casos.
Lo solucioné preguntando por el nombre del server, que en mi caso es 'localhost', si es asi, define un HOME diferente. No se si habrá alguna implicación negativa al hacer esto...

Saludos,
Ignacio
  #10 (permalink)  
Antiguo 12/06/2008, 11:00
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Estaría interesante ver el código involucrado donde te da la falla, ya que no estoy seguro de la razón del problema de "solo para uno de los casos"
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #11 (permalink)  
Antiguo 12/06/2008, 11:46
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Lo que sucede es:

Si lo corro localmente, el $_SERVER[DOCUMENT_ROOT] es igual a: 'C:\xampp\htdocs\'
Pero cuando lo corra en mi servidor, va a ser igual a 'http://www.misitio.com/', me equivoco?

En el primer caso, va a buscar el config.php a C:\xampp\htdocs\config.php, en el segundo a http://www.misitio.com/config.php.

En el primer caso, me da error, porque yo tengo varios proyectos en mi raíz, y el archivo que busca esta en realidad en C:\xampp\htdocs\ProyectoEnCuestion\config.php

Y si cambio $_SERVER[DOCUMENT_ROOT] por $_SERVER[DOCUMENT_ROOT].'/ProyectoEnCuestion' la situacion va a ser inversa, no me va a funcionar en produccion, ya que el proyecto esta hosteado en la raiz, para que se pueda acceder directamente.
  #12 (permalink)  
Antiguo 12/06/2008, 12:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

parcialmente mal...

DOCUMENT_ROOT entrega dos versiones... basadas en directorios y sistema operativo

en Windows.... regresa C:\EasyPHP\www -por ejemplo
en *NIX... regresa /etc/var/www -por ejemplo

en ninguno de los casos devuelve el nombre del servidor, para eso esta SERVER_NAME

solo que aqui si hay una cosa mas extraña, y depende mucho de la configuracion del servidor....

a veces, en sistema *nix solo devuelve una / en ves de la ruta completa... y eso es raro, ya que asi no sirve....

en mi caso, ya que uso Windows de prueba y subo a mi HOST *nix (cosa que también me altera el DOCUMENT_ROOT) ya que la ruta real es... /foo/bar/www (por ejemplo) y me de la / sola.... que mal....

tuve que ingeniármelas para averiguar la verdadera raíz de ambos sistemas, sin tener que cambiar el código cada ves.... e hice esto (son tan solo dos constantes)

index.php
Código PHP:
<?php
define
('BASE_DIR'// Ruta real de la aplicacion (aqui)
       
dirname(__FILE__)
    );

define('BASE_URL'// URL de la aplicacion (aqui)
            
str_replace('\\''/'// Reparamos!
        
dirname($_SERVER['SCRIPT_NAME'])
    ));
?>
siempre y cuando, todo se incluya desde el index.php funciona... sino, pueden intentarlo... suerte!

PDTA: al menos, a mi si me funciona y esto, no lo he modificado desde que lo pensé...


BASE_DIR nos devuelve la ruta completa basada en el script actual... la real
BASE_URL nos devuelve la ruta relativa basada en la URL actual...

osea, si me script esta en... C:\EasyPHP\www\www\foo\bar\un.php

BASE_DIR devuelve C:\EasyPHP\www\foo\bar (sistema de archivos)
BASE_URL devuelve solo foo/bar (lo que es la URL)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 12/06/2008 a las 12:08
  #13 (permalink)  
Antiguo 12/06/2008, 13:37
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Gracias por la aclaración, lo voy a tener en cuenta antes de actualizar y lo voy a leer con mas cuidado.
  #14 (permalink)  
Antiguo 12/06/2008, 15:54
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Lo que te sugiero es que no dependas tan genéricamente de lo que te dice el servidor web.

Lo que deberías hacer es tener un configuracion.php y ahí le pones la ruta base, luego usas esa ruta base de forma relativa en todos tus proyectos. Así, cuando cambias de entorno, solo debes ajustar la configuración.

Para las "/" de los directorios usen la constante genérica DIRECTORY_SEPARATOR, así queda independiente del sistema.

ej:

Código PHP:
$ruta HOME_BASE DIRECTORY_SEPARATOR 'public' DIRECTORY_SEPARATOR 'test'
Sí, el nombre de la constante es largo, pero para esto se usa
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #15 (permalink)  
Antiguo 13/06/2008, 15:53
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Exclamación Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Bueno, vuelvo con problemas, a ver si alguien sigue atento a este post...

Resulta que lo de enrique funciono. Localmente, todo anda ok.
Ahora, antes de actualizar, subo el sitio a un subdirectorio y lo pruebo a ver como se comporta.

Resulta que me da problemas para loguearme. Luego de un buen rato, me doy cuenta que una de mis clases no esta funcionando correctamente.

Aislé el problema, y esto tan simple no me funciona:

Código PHP:
require_once('config.php');
require_once(
CLASSES.'/Sistema.php');
require_once(
CLASSES.'/Administrator.php');
    
echo 
CLASSES;    //por si acaso: este path da perfectamente.
    
                
$admin = new Administrator();
                
$admin->setUsername('admintest');
                
$admin->load();
                echo 
$admin
Ahora, el resultado al visitar este archivo es:

Código:
/hsphere/local/home2/userxxx/sitio.com/test/classes
NombreUsuario: admintest
Email:
Tel:
Type:
Es decir, la clase la carga bien, porque el path esta correcto, y usa el toString de Administrator.

El load de la clase Admin es
Código PHP:
public function load(){
            
Sistema::getInstance()->loadAdministrator($this);
        } 
Y sistema hace algo asi como:

Código PHP:
public function loadAdministrator(Administrator $p_admin){
            
            
$link MySQLConnect::getInstance();
            
$query "";
            
            if(
$p_admin->getId()!= -1){
                
$query "select id, username, password, email, phone, type
                        from administrators
                        where id = "
.$p_admin->getId();
            }
            else{
                
$query "select id, username, password, email, phone, type
                        from  administrators
                        where username = '"
.$p_admin->getUsername()."'";
            }

            
$result $link->query($query);
            if (
$result == NULL){
                
//error
            
}
            else{
                if (
mysql_num_rows($result) == 1) {

                    while (
$row mysql_fetch_object($result)) {
                        
$p_admin->setId($row->id);
                        
$p_admin->setUsername($row->username);
                        
$p_admin->setPassword($row->password);
                        
$p_admin->setEmail($row->email);
                        
$p_admin->setPhone($row->phone);
                        
$p_admin->setType($row->type);
                    }
                }
            }
        } 
Yo creo que el admin esta yendo al load como por parametro, y cuando vuelve no esta modificado... es raro, ya que en php5 pasa por referencia por defecto, no?

Si no es eso, no se que puede ser...
Agradezco su ayuda mas que nunca, así puedo solucionar esto y actualizar de una vez por todas!
  #16 (permalink)  
Antiguo 15/06/2008, 10:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Hola chitoso,

Veo en tus clases haces una referencia a cargar MySQLConnect::getInstance() pero nunca la cargas, solo cargas Sistema y Administrator.

Revisa que la clase este siendo cargada correctamente.

Saludos.
  #17 (permalink)  
Antiguo 16/06/2008, 09:07
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Desacuerdo Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

El include de esa clase lo hago dentro de la clase Sistema. De todas maneras lo hice nuevamente antes del script y da el mismo problema. Les recuerdo que localmente funciona sin problemas, el resultado del script de prueba es:

Código PHP:
C:/xampp/htdocs/app/classes
Usuario
admintest
Email
test@c.com
Tel
demo
Type

Lo raro, es que en el servidor no funciona, y no da ningun error. Como puedo hacer por lo menos para que me muestre los errores?
  #18 (permalink)  
Antiguo 16/06/2008, 09:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Hola chitoso,

Puedes poner al principio de tu script: error_reporting( E_ALL );

Saludos.
  #19 (permalink)  
Antiguo 16/06/2008, 10:54
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Ya se que me perdieron la paciencia... pero la verdad que estoy perdido...

GatorV, puse error_reporting( E_ALL ); y parece que no le importa mucho...
Es mas, el siguiente codigo no me da error, simplemente me resulta en una pagina en blanco:

Código PHP:
error_reportingE_ALL );
require_once(
'config.php');
require_once(
CLASSES.'/SistemaXNOEXISTEXXX.php'); 
CLASSES esta bien definido en config.php. Este archivo se carga bien. Ahora, cargo un archivo que no existe y no da errores? Esto localmente me da horrores... no entiendo.
Lamentablemente voy a tener que volver al viejo código estructurado, por lo menos hasta que encuentre el error... :(
  #20 (permalink)  
Antiguo 16/06/2008, 11:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Mmm sube un archivo con el texto:
Código PHP:
<?php
phpinfo
();
?>
Y revisa si tienes activado el display_errors.

Saludos.
  #21 (permalink)  
Antiguo 16/06/2008, 13:24
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Estaba en OFF... buscando encontré lo siguiente, para mostrar los errores sin tener que cambiar el php.ini:

Código PHP:
ini_set('display_errors'1);
ini_set('log_errors'1);
ini_set('error_log'dirname(__FILE__) . '/error_log.txt');
error_reporting(E_ALL); 
Luego, el resultado del primer script (donde hago el load de Administrator) es el siguiente:

Código PHP:
NoticeConstant HOME already defined in /hsphere/local/home2/usr/beta.sitio.com/config.php on line 11

Notice
Constant CLASSES already defined in /hsphere/local/home2/usr/beta.sitio.com/config.php on line 13

Notice
Constant ADMIN already defined in /hsphere/local/home2/usr/beta.sitio.com/config.php on line 14

Notice
Constant IMAGES already defined in /hsphere/local/home2/usr/beta.sitio.com/config.php on line 15


Notice
: Use of undefined constant DOCUMENT_ROOT assumed 'DOCUMENT_ROOT' in /hsphere/local/home2/usr/beta.sitio.com/test.php on line 18
document root
: /hsphere/local/home2/usr/beta.sitio.com
Usuario
admintest
Email
:
Tel:
Type
Segun entiendo, me dice que las constantes ya estan definidas... cuando da este tipo de error no se detiene la ejecución, verdad?

No estoy muy seguro que hacer ahora...
  #22 (permalink)  
Antiguo 16/06/2008, 14:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Hola chitoso,

Si te fijas esta duplicando las constantes, adicionalmente te esta indicando que estas usando una cosntante DOCUMENT_ROOT cuando debes de usar 'DOCUMENT_ROOT' (seguramente lo estas usando en $_SERVER.

Revisa primero esos notices para que cheques perfectamente si esta incluyendo bien los datos.

Saludos.
  #23 (permalink)  
Antiguo 17/06/2008, 10:52
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Desacuerdo Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Agregué if(!defined('CONSTANTE')) para no definir las constantes nuevamente, y arreglé el tema de $_SERVER['DOCUMENT_ROOT'] sin las comillas y... nada...

Ahora si el server se queda en blanco...

Como dije, las clases se cargan bien, porque si las instancio y hago 'echo', sale el toString de cada una...
  #24 (permalink)  
Antiguo 17/06/2008, 12:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Lo que te recomendaría seria ir agregando echos a forma de debug en tu función de loadAdministrator para que vayas viendo que datos llegan y que datos se envían, solo así podrás ver claramente el problema.

Saludos.
  #25 (permalink)  
Antiguo 19/06/2008, 13:03
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

GatorV, hice lo que me decis y comprobé que en efecto lo que está pasando es que el método load() se comporta como si el parametro que recibe estuviera pasandose como por parametro, en vez de por referencia. Entonces al volver, no esta modificado.

Lo resolví, pasandole al load un id o un username, y que el load devuelva un Administrator con todos los datos cargados. No es lo que queria... pero por ahora funciona.

Gracias a todos de todas maneras.
  #26 (permalink)  
Antiguo 19/06/2008, 22:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Mmmm muy raro en PHP5 los objetos se pasan todos por referencia no por valor, pero podrias forzar usando & al pasar el parametro:
Código PHP:
public function loadAdministrator(Administrator &$p_admin){ 
Saludos.
  #27 (permalink)  
Antiguo 20/06/2008, 08:24
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
De acuerdo Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Si, MUY raro, yo tenia la misma impresion.
De hecho, no era eso lo que sucedía... y de hecho, modifiqué tanto el código en tantos días, que ahora está parcialmente solucionado y no se que causaba el problema.

Ahora me enfrento a otro problemita, tambien dentro de POO... Voy a darle alguna vuelta mas, sino volvere en otro post porque este puede darse como 'solucionado'. Gracias de nuevo por la ayuda.
  #28 (permalink)  
Antiguo 23/06/2008, 09:29
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Cita:
Iniciado por GatorV Ver Mensaje
Mmmm muy raro en PHP5 los objetos se pasan todos por referencia no por valor, pero podrias forzar usando & al pasar el parametro:
Código PHP:
public function loadAdministrator(Administrator &$p_admin){ 
Saludos.
Creí que había solucionado el problema la semana pasada, pero me dio problemas nuevamente al cargar un Administrador.
Probé lo que dijiste, Gator, y funcionó-
Es decir, pongo &, para forzar que pase por parámetro y funciona. Esto no debería ser necesario en PHP5... como lo soluciono o verifico que setting esta mal?

De todas maneras, ya voy a cambiar de hosting.... pero es bueno saber.

Saludos,
Ignacio
  #29 (permalink)  
Antiguo 23/06/2008, 11:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Creo viendo tu anterior POST era que al tu pasar $admin como variable se sobre-escribia con la variable global, es uno de los graves problemas de usar register_globals.

Saludos.
  #30 (permalink)  
Antiguo 23/06/2008, 11:59
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Problema con require('dbconfig.php') en clase MySQLConnect

Puse register_globals en off desde un .htaccess... y el phpinfo() me dice q estan Off...
Aun así, no dudo que sea todo a causa de ese problema.

Gracias por la pronta respuesta
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 22:52.