05/09/2013, 13:42
|
| | | Fecha de Ingreso: marzo-2008 Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 2 meses Puntos: 96 | |
Respuesta: Error en función y clase de conexión Cita:
Iniciado por leonel0327 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($query, 0,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. |