Foros del Web » Programando para Internet » PHP »

Error en función y clase de conexión

Estas en el tema de Error en función y clase de conexión en el foro de PHP en Foros del Web. Buen día Actualmente tengo una funcion y esta creo un objeto de una clase, con sus respectivas funciones, pero simplemente me arroja errores que no ...
  #1 (permalink)  
Antiguo 04/09/2013, 12:23
 
Fecha de Ingreso: septiembre-2012
Ubicación: Puebla Mexico
Mensajes: 26
Antigüedad: 11 años, 7 meses
Puntos: 0
Error en función y clase de conexión

Buen día

Actualmente tengo una funcion y esta creo un objeto de una clase, con sus respectivas funciones, pero simplemente me arroja errores que no estan declaradas las variables.

Código PHP:
function validarUsuario($usernameRecogido$passwordRecogido) {
    
$passwordRecogido sha1($passwordRecogido);
    
$query = ("SELECT idCLIENTES, username, password FROM USUARIOS WHERE username = \"$usernameRecogido\" LIMIT 1");
    
    
$seleccionarUsuario = new conexion($hostname$usuarioDB$passwordDB$database);
    
$usuarioObtenido $seleccionarUsuario->enviarQuery($query);
    return 
$seleccionarUsuario->error;
    if (
$usuarioObtenido == FALSE) {
        return 
false;
    } else {
        return 
true;
        }

En la funcion anterior, puse return $seleccionarUsuario->error porque esta es parte de la clase conexion y me imprime el error suscitado y me dice que las variables $hostname, $usuario, $password $database no estan inicializadas ¿Porque es un objeto y no puede declararse dentro de una funcion? Estas variables estan dentro de un include, y claro si declaro el include 'datos.php';

Que me recomiendan hacer ¿Crear una clase ValidarUsuario extendida de la clase conexion?

De la clase, solo pongo algunos fragmentos, pero la estructura es practicamente la misma

Código PHP:
class conexion {
    private 
$hostname;
    private 
$usuarioDB;
    private 
$passwordDB;
    private 
$database;
    
    private 
$conexion;
    public 
$error;
    
    public function 
__construct($hostname$usuarioDB$passwordDB$database) {
        
$this->hostname $hostname;
        
$this->usuarioDB $usuarioDB;
        
$this->passwordDB $passwordDB;
        
$this->database $database;
        
        if(!
$this->_connect()){
            
$this->error mysql_error();
        }
    }
public function 
enviarQuery($query){
        
$tipo strtoupper(substr($query0,6));
        switch (
$tipo){
            case 
'SELECT':
                
$resultado mysql_query($query$this->conexion);
                if(!
$resultado){
                    
$this->error mysql_error();
                    
// $this->error;
                
}
                else{
                    if(
mysql_num_rows($resultado)==0){
                        return 
false;
                    }
                    else{
                        while(
$f mysql_fetch_assoc($resultado)){
                            
$r[] = $f;
                        }
                        
mysql_free_result($resultado);
                        return 
$r;
                    }
                }
                break; ..

Gracias
  #2 (permalink)  
Antiguo 04/09/2013, 23:49
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Error en función y clase de conexión

No los veo:
mysql_connect(); ?
mysql_select_db(); ?
  #3 (permalink)  
Antiguo 05/09/2013, 08:28
 
Fecha de Ingreso: septiembre-2012
Ubicación: Puebla Mexico
Mensajes: 26
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Error en función y clase de conexión

Estan dentro de la clase conexion, aunque ese no es el error. Dado que en otras paginas utilizo dicha clase y no me genera ningun error.

Gracias

Cita:
Iniciado por bathorz Ver Mensaje
No los veo:
mysql_connect(); ?
mysql_select_db(); ?
  #4 (permalink)  
Antiguo 05/09/2013, 12:31
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Error en función y clase de conexión

$hostname, $usuarioDB, $passwordDB, $database: no entran en la función validarUsuario(). Tus opciones:
1. Pasárselas como parámetro.
2. Usar constantes: $seleccionarUsuario = new clConexion(HOST, USER, PASS, DBASE);
3. Declararlas globales.
4. ...otra...el que la conozca.
  #5 (permalink)  
Antiguo 05/09/2013, 13:42
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Error en función y clase de conexión

Cita:
Iniciado por leonel0327 Ver Mensaje
Buen día

Actualmente tengo una funcion y esta creo un objeto de una clase, con sus respectivas funciones, pero simplemente me arroja errores que no estan declaradas las variables.

Código PHP:
function validarUsuario($usernameRecogido$passwordRecogido) {
    
$passwordRecogido sha1($passwordRecogido);
    
$query = ("SELECT idCLIENTES, username, password FROM USUARIOS WHERE username = \"$usernameRecogido\" LIMIT 1");
    
    
$seleccionarUsuario = new conexion($hostname$usuarioDB$passwordDB$database);
    
$usuarioObtenido $seleccionarUsuario->enviarQuery($query);
    return 
$seleccionarUsuario->error;
    if (
$usuarioObtenido == FALSE) {
        return 
false;
    } else {
        return 
true;
        }

En la funcion anterior, puse return $seleccionarUsuario->error porque esta es parte de la clase conexion y me imprime el error suscitado y me dice que las variables $hostname, $usuario, $password $database no estan inicializadas ¿Porque es un objeto y no puede declararse dentro de una funcion? Estas variables estan dentro de un include, y claro si declaro el include 'datos.php';

Que me recomiendan hacer ¿Crear una clase ValidarUsuario extendida de la clase conexion?

De la clase, solo pongo algunos fragmentos, pero la estructura es practicamente la misma

Código PHP:
class conexion {
    private 
$hostname;
    private 
$usuarioDB;
    private 
$passwordDB;
    private 
$database;
    
    private 
$conexion;
    public 
$error;
    
    public function 
__construct($hostname$usuarioDB$passwordDB$database) {
        
$this->hostname $hostname;
        
$this->usuarioDB $usuarioDB;
        
$this->passwordDB $passwordDB;
        
$this->database $database;
        
        if(!
$this->_connect()){
            
$this->error mysql_error();
        }
    }
public function 
enviarQuery($query){
        
$tipo strtoupper(substr($query0,6));
        switch (
$tipo){
            case 
'SELECT':
                
$resultado mysql_query($query$this->conexion);
                if(!
$resultado){
                    
$this->error mysql_error();
                    
// $this->error;
                
}
                else{
                    if(
mysql_num_rows($resultado)==0){
                        return 
false;
                    }
                    else{
                        while(
$f mysql_fetch_assoc($resultado)){
                            
$r[] = $f;
                        }
                        
mysql_free_result($resultado);
                        return 
$r;
                    }
                }
                break; ..

Gracias
Si pones los datos de las variables en la misma clase

private $host='localhost'; y asi con las otras
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.

Etiquetas: clase, mysql, select, sql, usuarios, variable
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 10:32.