Hola a todos... tengo una clase php, muy antigua, que me maneja el acceso de usuraios, y no me queda otra que actualizarla a MySQLi con mis escasos conocimientos de php, ya que mi Sitio depende de ella. Por favor, necesito ayuda u orientación para tratar de resolverlo.
En el archivo mi_classe.php tengo lo siguiente (pongo la parte del código donde se está frenando):
Código PHP:
<?php
require_once("db_config.php"); // this path works for me...
function Access_user($redirect = true) {
$this->connect_db();
if (empty($_SESSION['logged_in'])) {
$this->login_reader();
if ($this->is_cookie) {
$this->set_user($redirect);
}
}
if (isset($_SESSION['user'], $_SESSION['pw'])) {
$this->user = $_SESSION['user'];
$this->user_pw = $_SESSION['pw'];
}
}
function check_user($pass = "") {
global $mylink;
switch ($pass) {
case "new":
$sql = sprintf("SELECT COUNT(*) AS test FROM %s WHERE email = %s OR login = %s", $this->table_name, $this->ins_string($this->user_email), $this->ins_string($this->user));
break;
case "lost":
$sql = sprintf("SELECT COUNT(*) AS test FROM %s WHERE email = %s AND active = 'y'", $this->table_name, $this->ins_string($this->user_email));
break;
default:
$sql = sprintf("SELECT COUNT(*) AS test FROM %s WHERE BINARY login = %s AND pw = %s AND active = 'y'", $this->table_name, $this->ins_string($this->user), $this->ins_string($this->user_pw));
}
//La siguienta parte la he modificado para adaptarla a MySQLi
$result = $mylink->query($sql);
$row = $result->fetch_assoc();
if ($row['test'] == 1) {
return true;
} else {
return false;
}
}
//Función de conexión a la BD modificada para adaptarla a MySQLi
function connect_db() {
$mylink = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD);
$mylink->select_db(DB_NAME);
$mylink->set_charset('utf8');
}
?>
Ahora bien, el proceso se frena y me tira este error: "
Fatal error: Call to a member function query() on null in..." haciendo referencia a la linea:
Código PHP:
<?php
$result = $mylink->query($sql);
?>
Interpreto que la consulta del query es nula porque no está recibiendo la conexión a la BD, y no me doy cuenta dónde está la falla.
Muchas gracias de antemano!