Foros del Web » Programando para Internet » PHP »

Problemas con archivo de conexión con postgre

Estas en el tema de Problemas con archivo de conexión con postgre en el foro de PHP en Foros del Web. Tengo el siguiente problema, cuando coloco el archivo de conexión fuera del directorio de la clase donde lo voy a utilizar no conecta, en cambio ...
  #1 (permalink)  
Antiguo 06/03/2012, 14:59
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 15 años
Puntos: 0
Problemas con archivo de conexión con postgre

Tengo el siguiente problema, cuando coloco el archivo de conexión fuera del directorio de la clase donde lo voy a utilizar no conecta, en cambio si lo tengo en el mismo directorio si lo hace.

Este es el archivo de conexión config.php

Código PHP:
<?php
/*
Clase: Config
*/

class Config{

    var 
$host$port$data$user$pass;

    
//constructor de la clase
    
function Config(){
        
$this->host="localhost";
        
$this->port="5432";
        
$this->data="sienna";
        
$this->user="postgres";
        
$this->pass="root";
    }
    
    function 
open() {
        
$con=pg_connect("host=".$this->host." port=".$this->port." password=".$this->pass." user=".$this->user." dbname=".$this->data);
        return 
$con;
    }
}
?>
Abajo la función donde lo utilizo, si lo copio en el mismo directorio y lo llamo include_once("config.php"); funciona pero si lo coloco en un directorio 2 niveles por fuera del actual no me conecta.

Código PHP:
<?php
include_once("../../config/config.php");
class 
Usuario{

    var 
$varhost$vardb$varlogin$varpass;
    var 
$cod_usuario$login_usuario$clave_usuario$estatus_usuario$cod_perfil$nombre_usuario$apellido_usuario$cedula_usuario$tlf_ofic_usuario$tlf_celular_usuario$correo_usuario$fecha_registro_usuario$fecha_ult_sesion$fecha_ult_actualizacion$cod_usuario_creo$cod_usuario_act;
    var 
$primero,$ultimo,$total,$proximo,$anterior;

    
//constructor de la clase
    
function Usuario(){
        
$this->cod_usuario=$this->login_usuario=$this->clave_usuario=$this->estatus_usuario=$this->cod_perfil=$this->nombre_usuario=$this->apellido_usuario=$this->cedula_usuario=$this->tlf_ofic_usuario=$this->tlf_celular_usuario=$this->correo_usuario=$this->fecha_registro_usuario=$this->fecha_ult_sesion=$this->fecha_ult_actualizacion=$this->cod_usuario_creo=$this->cod_usuario_act="";
        
$this->primero=$this->ultimo=$this->total=$this->proximo=$this->anterior="";
        
//include ("conexion.php");
    
}
    
    
//obtiene informacion del administrador para el inicio de sesión
    
function getUsuarioLogin($login_usuario,$clave_usuario){
        
$conf=new Config();
        
$con=$conf->open();
        
$err="OK";
        
$query="select t1.* from administracion.tbl_usuario t1 where t1.login_usuario='$login_usuario'";
        
//$con=@pg_connect("host=".$this->varhost." password=".$this->varpass." user=".$this->varlogin." dbname=".$this->vardb);
        
$rs=@pg_query($con$query);
        if (@
pg_num_rows($rs)>0){
            
$this->cod_usuario=@pg_fetch_result($rs,0,'cod_usuario');
            
$this->login_usuario=@pg_fetch_result($rs,0,'login_usuario');
            
$this->clave_usuario=@pg_fetch_result($rs,0,'clave_usuario');
            
$this->cod_perfil=@pg_fetch_result($rs,0,'cod_perfil');
            
$this->estatus_usuario=@pg_fetch_result($rs,0,'estatus_usuario');
            
$this->nombre_usuario=@pg_fetch_result($rs,0,'nombre_usuario');
            
$this->apellido_usuario=@pg_fetch_result($rs,0,'apellido_usuario');
            
$this->cedula_usuario=@pg_fetch_result($rs,0,'cedula_usuario');
            
$this->correo_usuario=@pg_fetch_result($rs,0,'correo_usuario');
            
$this->tlf_ofic_usuario=@pg_fetch_result($rs,0,'tlf_ofic_usuario');
            
$this->tlf_celular_usuario=@pg_fetch_result($rs,0,'tlf_celular_usuario');
            
$this->fecha_registro_usuario=@pg_fetch_result($rs,0,'fecha_registro_usuario');
            
$this->fecha_ult_sesion=@pg_fetch_result($rs,0,'fecha_ult_sesion');
            
$this->fecha_ult_actualizacion=@pg_fetch_result($rs,0,'fecha_ult_actualizacion');
            
$this->cod_usuario_creo=@pg_fetch_result($rs,0,'cod_usuario_creo');
            
$this->cod_usuario_act=@pg_fetch_result($rs,0,'cod_usuario_act');
            if (
$this->clave_usuario!=$clave_usuario){
                
// password incorrecto
                
$err='passwordFallido';
            } else {
                
// password correcto
                
$err='OK';
            }
        } else {
            
// login incorrecto
             
$err='LoginFallido';
        }
        if (
$rs) {}
        else { 
$err="X"; }
        @
pg_close();
        return 
$err;
    }
}
?>
Cualquier ayuda les agradecería.

Saludos
  #2 (permalink)  
Antiguo 06/03/2012, 15:35
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 18 años, 1 mes
Puntos: 74
Respuesta: Problemas con archivo de conexión con postgre

1º -> Prueba poniendo la ruta absoluta a ver si de esa manera funcion (http://www.tuweb.com/config/config.php).

2º -> Creo que deberias mirarle una buena ojeada a la POO, ya que tu clase es bastante (sin animo de ofender) mala. Estas usando var cuando ya no usa, no muestras correctamente la visibilidad de los métodos...

Saludos,
  #3 (permalink)  
Antiguo 06/03/2012, 16:45
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 15 años
Puntos: 0
Respuesta: Problemas con archivo de conexión con postgre

OsSk4R gracias por responder. Cambie la clase pero de igual forma cuando la ubico en un directorio distinto no me conecta y si esta en el mismo directorio si; por otro lado no me sirve una dirección absoluta ya que no conozco la url donde el cliente ubicará la aplicación.

Código PHP:
<?php 
class connex 
{
    private 
$user;
    private 
$clave;
    private 
$servidor;
    private 
$db;
    private 
$port;
    private 
$conex;

    function 
__construct()
    {
        
$this->user 'postgres';
        
$this->clave='root';
        
$this->servidor 'localhost';
        
$this->db 'sienna';
        
$this->port '5432';
        
$this->conex='';
    }
    
    public function 
conectar()
    {
        
$this->conex pg_connect("host=".$this->servidor." port=".$this->port."password=".$this->clave." user=".$this->user." dbname=".$this->db." ") or die("ERROR DE CONEXION");
    
        return 
$this->conex;
    }
    
    public function 
consulta($pConsulta)
    {
        
$query pg_query($this->conectar(),$pConsulta);
        return 
$query;
    }
    
    public function 
row($pConsulta)
    {
        
$mostrar pg_fetch_assoc($pConsulta);
        
        return 
$mostrar;
    }

    public function 
num_rows($pConsulta)
    {
        
$consulta pg_num_rows($pConsulta);
        return 
$consulta;
    }
}
?>
  #4 (permalink)  
Antiguo 06/03/2012, 16:55
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 18 años, 1 mes
Puntos: 74
Respuesta: Problemas con archivo de conexión con postgre

Yo te lo decía porque si funcionase con una url absoluta ya sabríamos dónde tendríamos el problema, así que prueba a ponerle una url al menos para probar sí de esa manera te funciona o no.
Sí te funciona el problema estaría aquí: include_once("../../config/config.php");

Saludos,
  #5 (permalink)  
Antiguo 07/03/2012, 01:36
Avatar de ilen  
Fecha de Ingreso: febrero-2009
Mensajes: 125
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problemas con archivo de conexión con postgre

Revisa si tienes la libreria de postgres en tu servidor, sino todo es inutil
  #6 (permalink)  
Antiguo 08/03/2012, 14:03
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 15 años
Puntos: 0
Respuesta: Problemas con archivo de conexión con postgre

Hola Ilen, si tengo la librería, porque si ubico la clase de conexión en el mismo directorio donde tengo la clase donde la voy a utilizar si se conecta, mi problema radica en que si ubico el archivo de conexión en un directorio distinto no conecta.
  #7 (permalink)  
Antiguo 09/03/2012, 03:24
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 18 años, 1 mes
Puntos: 74
Respuesta: Problemas con archivo de conexión con postgre

¿Pero lo has probado ya poniendo una url absoluta?

Etiquetas: postgre, registro, usuarios
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:59.