gracias por tu respuesta , lo he cambiado asi:
Código PHP:
/*Incluimos el fichero de la clase Db*/
require_once 'dbConfig/Db.class.php';
/*Incluimos el fichero de la clase Conf*/
require_once 'dbConfig/Conf.class.php';
/* Clase encarga de gestionar al usuario */
class Users{
private $db;
private $sql;
private $result;
private $num;
private $userID;
static $_instance;
public function __construct(){
session_start();
$this->getDbConecction();
}
public function getDbConecction($params = null) {
if($this->db === null) {
$this->db = Db::getInstance($params);
}
return $this->db;
}
public static function getInstance(){
if (!(self::$_instance instanceof self)){
self::$_instance=new self();
}
return self::$_instance;
}
//Método login de los USUARIOS
public function login($usuario, $password){
$sql="SELECT * FROM...";
$result=$this->db->ejectutar($sql);
$num=$this->db->numero_registros($result);
if($num > 0){
$sql="SELECT * FROM ...";
$result=$this->db->ejecutar($sql);
$num=$this->db->numero_registros($result);
if($num>0){
while ($x=$this->db->obtener_fila($result,0)){
$userID=$x['user_id'];
}
$_SESSION["userID"]=$userID;
return 1;
}
else{/*error de contraseña*/ return 0;}
}
else{/*error de usuario*/ return 0;}
}
public function getUserSession(){
return $_SESSION["userID"];
}
}
y
Código PHP:
/*Incluimos el fichero de la clase Users*/
require_once 'lib/Users.class.php';
session_start();
//Invocamos al objeto usuario
$objUsers=new Users();
//Obtenemos los datos introducidos por el usuario
$usuario=$_POST["usuario"];
$password=$_POST["password"];
//comprobamos si existe
$existe_Usuario=$objUsers->login($usuario,$password);
Edito: fue un error de digitación....y me falto poner la funcion getInstance() en el contructor... ahora si me funciona!!!!! muchas gracias !!!!
Edito2: Una ultima cosilla.... en un post anterior me pasaron una función para limpiar las cadenas antes de ponerlas en los query... esta tambien está en la clase Db:
Código PHP:
//Método de seguridad de cadenas
public function setSecure($string){
if(is_string($string)){
$this->cadena = mysql_real_escape_string(stripslashes(trim($string)));
return $this->cadena;
}
}
Y las invoco en la funcion login de la clase Users:
Código PHP:
public function login($usuario, $password){
/*sanamos cadenas*/
$usuario = $this->db->setSecure($usuario);
$password = $this->db->setSecure($password);
$sql = "SELECT * FROM...";
$result = $this->db->ejecutar($sql);
$num = $this->db->numero_registros($result);
if($num > 0){
$sql = "SELECT * FROM...";
$result = $this->db->ejecutar($sql);
$num = $this->db->numero_registros($result);
if($num>0){
while ($x = $this->db->obtener_fila($result,0)){
$userID=$x['user_id'];
}
$_SESSION["userID"]=$userID;
return 1;
}
else{/*error de contraseña*/ return 0;}
}
else{/*error de usuario*/ return 0;}
}
Pero cuando pongo esto me sale el error: Fatal error: Call to undefined method Db::setSecure() on line 60 .... porque?