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

Problemas con Variables Publicas

Estas en el tema de Problemas con Variables Publicas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. puess, soy nuevo en eso de poo con php, y mucho mas con mssql... pues el punto es este, tengo la siguiente clase, el problema, ...
  #1 (permalink)  
Antiguo 20/02/2008, 23:46
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Problemas con Variables Publicas

puess, soy nuevo en eso de poo con php, y mucho mas con mssql...

pues el punto es este, tengo la siguiente clase, el problema, es: las variables publicas $ussu, $cla_usu, no llegan hasta la funcion, en si, al llevarlas a los parametros del store procedure, las lleva como $ussu='', $cla_usu=''

acaso estoy declarando algo mal ???

Código PHP:
<?php
  
class cls_usuario
  
{
    public 
$ide_usu;
    public 
$usu_usu;
    public 
$cla_usu;

    function 
validar_acceso()
    {
      
$obj_conexion = new conexion();
      
$con $obj_conexion->conectar();
      
$stmt mssql_init("usp_usuario_validar_acceso"$con);
      
mssql_bind($stmt"@usu_usu"$usu_usuSQLVARCHARFALSEFALSE16);
      
mssql_bind($stmt"@cla_usu"$cla_usuSQLVARCHARFALSEFALSE16);
      
$resultado mssql_execute($stmt);
      return 
$resultado;
    }

  }
?>
y un .php donde proceso las variables de login de un formulario:

Código PHP:
$obj_usu = new cls_usuario();
$obj_usu->usu_usu $f_usu_usu;
$obj_usu->cla_usu $f_cla_usu;
$usu $obj_usu->validar_acceso(); 
en $usu debe almacenar un juego de registros, de la consulta a la bd, en si, si colocase de esta forma la clase si funciona, pero no es la correcta por que el diagrama de clases diseñado esta diseñado de la manera inicial.

Código PHP:
<?php
  
class cls_usuario
  
{

    function 
validar_acceso($usu_usu$cla_usu)
    {
      
$obj_conexion = new conexion();
      
$con $obj_conexion->conectar();
      
$stmt mssql_init("usp_usuario_validar_acceso"$con);
      
mssql_bind($stmt"@usu_usu"$usu_usuSQLVARCHARFALSEFALSE16);
      
mssql_bind($stmt"@cla_usu"$cla_usuSQLVARCHARFALSEFALSE16);
      
$resultado mssql_execute($stmt);
      return 
$resultado;
    }

  }
?>
y en la aplicación:

Código PHP:
  $obj_usu = new cls_usuario();
  
$usu $obj_usu->validar_acceso($f_usu_usu$f_cla_usu); 
en este caso si me da un juego de registros, y todo ok, pero como veran, agrego las variables en la función, y eso no es correcto...

espero entiendan mi poca experiencia con POO en php y mssql, gracias
  #2 (permalink)  
Antiguo 21/02/2008, 02:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Problemas con Variables Publicas

A todas las variables de la clase debes accederlas mediante $this->variable. Sin el $this son variables nuevas creadas en el ambito de la funcion.
Código PHP:
<?php
  
class cls_usuario
  
{
    public 
$ide_usu;
    public 
$usu_usu;
    public 
$cla_usu;

    function 
validar_acceso()
    {
      
$obj_conexion = new conexion();
      
$con $obj_conexion->conectar();
      
$stmt mssql_init("usp_usuario_validar_acceso"$con);
      
mssql_bind($stmt"@usu_usu"$this->usu_usuSQLVARCHARFALSEFALSE16);
      
mssql_bind($stmt"@cla_usu"$this->cla_usuSQLVARCHARFALSEFALSE16);
      
$resultado mssql_execute($stmt);
      return 
$resultado;
    }

  }
?>
  #3 (permalink)  
Antiguo 21/02/2008, 08:00
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Re: Problemas con Variables Publicas

wow, sos grande amigo, gracias por responder, justo estaba por salir al trabajo, ahora ire con nuevos conocimientos sobre esto, gracias, nos vemos, cuidate
  #4 (permalink)  
Antiguo 21/02/2008, 17:12
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: Problemas con Variables Publicas

Tienen un error bastante importantes que rompe unos de los maximos principios de OOP y es el Principio de Encapsulamiento, en pocas palabras todas las variables o atributos de una clase deberían ser privadas o protegidas y acceder a ellas mediante sus respectivos setter/getter.

Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:03.