Foros del Web » Programando para Internet » PHP »

PHP OO Probelam al aceder a funciones en clase php

Estas en el tema de Probelam al aceder a funciones en clase php en el foro de PHP en Foros del Web. Hola foreros nesesito ayuda urgente: poseo una clase de conexion a BD de la siguiente manera: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php     ...
  #1 (permalink)  
Antiguo 26/03/2011, 15:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 104
Antigüedad: 14 años, 6 meses
Puntos: 0
Probelam al aceder a funciones en clase php

Hola foreros nesesito ayuda urgente:

poseo una clase de conexion a BD de la siguiente manera:
Código PHP:
Ver original
  1. <?php
  2.     define("USER_IP", $_SERVER['REMOTE_ADDR']);
  3.    
  4.     class class_mysql
  5.     {  
  6.         private $conexion;     
  7.         private static $_instance = null;
  8.         //singelton
  9.         public static function getInstance() {
  10.             if( self::$_instance == null )
  11.             {
  12.                 self::$_instance = new self();
  13.             }
  14.             return self::$_instance;
  15.          }
  16.         //metodo para conectarme a la BD
  17.         public function conectarme_mysql()
  18.         {
  19.             if(!isset($this->conexion))
  20.             {
  21.                 $this->conexion = (mysql_connect("localhost","root","root")) or die(mysql_error());
  22.                 mysql_select_db("futbol",$this->conexion) or die(mysql_error());
  23.                 mysql_query ("SET NAMES 'utf8'");
  24.             }
  25.         }  
  26.     }
  27. ?>

y una clase para realisar consultas a la BD asi:

Código PHP:
Ver original
  1. <?php
  2.     require_once "class_conexion_bd.php";
  3.    
  4.     class class_mysql_consultas
  5.     {  
  6.         private static $_instance = null;
  7.         //singelton
  8.         public static function getInstance() {
  9.             if( self::$_instance == null )
  10.             {
  11.                 self::$_instance = new self();
  12.             }
  13.             return self::$_instance;
  14.         }
  15.          
  16.         function __construct()
  17.         {
  18.             $this->class_mysql = class_mysql::getInstance();
  19.             $this->class_mysql->conectarme_mysql();
  20.         }
  21.         //se ejecuta una consulta
  22.         public function dbquery1($consulta)
  23.         {
  24.             //me conecto a la BD
  25.             //$this->class_mysql->conectarme_mysql();
  26.             //ejecuto consulta
  27.             $resultado = @mysql_query($consulta);
  28.             if(!$resultado)
  29.             {
  30.                 echo 'MySQL Error: ' . @mysql_error();
  31.                 exit;
  32.             }
  33.             //me desconecto de la BD
  34.           //  $this->class_mysql->cerrar_conexion();
  35.             //mand resultado
  36.             return $resultado;
  37.         }
  38.         //debuelbe un array con los resultados de la consulta donde la cual se ve los resultados por el nombre del campo de la BD
  39.         public function dbarray($consulta)
  40.         {
  41.             //ejecuto consulta
  42.             $resultado = @mysql_fetch_assoc($consulta);
  43.             return $resultado;
  44.            
  45.         }
  46.         //me da la cantidad de duplas de un una consulta a la BD
  47.         public function dbrows($consulta)
  48.         {  
  49.             //ejecuto consulta
  50.             $resultado = mysql_num_rows($consulta);
  51.             return $resultado;
  52.     }  
  53. ?>

ahora quiero realisar una clase que me gestione el login de un usuario de la siguiente manera:

Código PHP:
Ver original
  1. <?php
  2.     @session_start();
  3.     //se incluye la clase donde estan los metodos realisar consultas en la BD
  4.     require_once "class_consultas_bd.php";
  5.  
  6.     class gestion_user_inicio
  7.     {
  8.         private static $_instance = null;
  9.         //singelton
  10.         public static function getInstance() {
  11.             if( self::$_instance == null )
  12.             {
  13.                 self::$_instance = new self();
  14.             }
  15.             return self::$_instance;
  16.         }
  17.          
  18.         function __construct()
  19.         {
  20.             $this->class_mysql_consultas = class_mysql_consultas::getInstance();
  21.         }
  22.        
  23.         public function prosesar_login_user($user, $pass)
  24.         {
  25.             $result = $this->$class_mysql_consultas->dbquery1("SELECT * FROM futbol_user WHERE nombre_user = '".$user."' and pass_user = '".$pass."'") ;
  26.             $rows = $this->$class_mysql_consultas->dbrows($result) ;
  27.            
  28.             if ( $rows != 0 )
  29.             {  
  30.                 $_SESSION[user_futbol] = $this->$class_mysql_consultas->dbarray($result) ;
  31.                 $userdata = $this->$class_mysql_consultas->dbarray($result) ;
  32.            
  33.                 return 1 ;
  34.             }
  35.             else{
  36.                 return 0 ;
  37.             }
  38.         }
  39.     }  
  40. ?>

y a esa clase la llamo desde una page php
asi:

Código PHP:
Ver original
  1. <?php
  2.     include "class/prosesar_datos_inicio.php" ;
  3.    
  4.     $gestion_user_inicio = new gestion_user_inicio() ;
  5.    
  6.     $user = $_POST['username'] ;
  7.     $pass = $_POST['passwd'] ;
  8.    
  9.     echo $gestion_user_inicio->prosesar_login_user($user, $pass);  
  10. ?>

me parece que hasta hay deberia de estar todo bien pero me da este error:

Fatal error: Cannot access empty property in C:\wamp\www\isra\class\prosesar_datos_inicio.php on line 25

que podria ser.
  #2 (permalink)  
Antiguo 26/03/2011, 17:40
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: Probelam al aceder a funciones en clase php

Cita:
$result = $this->$class_mysql_consultas->dbquery1("SELECT * FROM futbol_user WHERE nombre_user = '".$user."' and pass_user = '".$pass."'") ;
Por que hay un signo de pesos antes de "class_mysql_consultas"?
  #3 (permalink)  
Antiguo 27/03/2011, 06:45
 
Fecha de Ingreso: octubre-2009
Mensajes: 104
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Probelam al aceder a funciones en clase php

Gracias InKarC:

Ya solucionado que no me daba cuenta de eso ya esta solucionado.

saludos.

Etiquetas: clase
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 02:02.