così funziona
Codice PHP:
$mysqli = new mysqli($option['host'], $option['user_db'], $option['pass_db'], $option['database']);
if ($stmt = $mysqli->prepare("SELECT User_Cod, User_type, User_Pass_Login, User_Email FROM ole_user_acces WHERE User_Email = ? LIMIT 1")) {
$stmt->bind_param('s', $E_mail_Login); // esegue il bind del parametro '$email'.
$stmt->execute(); // esegue la query appena creata.
$stmt->store_result();
$stmt->bind_result($User_Cod, $User_type, $User_Pass_Login, $User_Email); // recupera il risultato della query e lo memorizza nelle relative variabili.
$stmt->fetch();
$password = md5($UserPass); // codifica la password usando una chiave univoca.
if($stmt->num_rows == 1) { // se l'utente esiste
// verifichiamo che non sia disabilitato in seguito all'esecuzione di troppi tentativi di accesso errati.
if($User_Pass_Login == $password) { // Verifica che la password memorizzata nel database corrisponda alla password fornita dall'utente.
// Password corretta!
$user_browser = $_SERVER['HTTP_USER_AGENT']; // Recupero il parametro 'user-agent' relativo all'utente corrente.
$User_type = preg_replace("/[^0-9]+/", "", $User_type); // ci proteggiamo da un attacco XSS
$_SESSION['User_type'] = $User_type;
$User_Cod = preg_replace("/[^a-zA-Z0-9_\-]+/", "", $User_Cod); // ci proteggiamo da un attacco XSS
$_SESSION['User_Cod'] = $User_Cod;
$_SESSION['login_string'] = hash('sha512', $password.$user_browser);
// Login eseguito con successo.
echo "OK";
} else {
// Password incorretta.
// Registriamo il tentativo fallito nel database.
$now = time();
//$mysqli->query("INSERT INTO login_attempts (user_id, time) VALUES ('$user_id', '$now')");
echo "NO";
}
} else {
// L'utente inserito non esiste.
return false;
}
}
Se invece utilizzo la conessione al db con le classi non funziona.
Codice PHP:
class NsbMySqlClass
{
// contiene la query
private $query;
// connessione e risorsa mysqli
private $mysqli;
// risultato con i dati estratti
private $result;
public function __construct(){
// Parametri di connessione
$host = 'localhost';
$user = 'root';
$password = 'werwer';
$database = 'werwer';
$charset = 'utf8';
// connessione in construct per non chiamare il metodo
$this->connect($host, $user, $password, $database, $charset);
}
public function __destruct(){
$this->disconnect();
}
// Metodo per la connessione
public function connect($host, $user, $password, $database, $charset, $port = null, $socket = null){
// creare la connessione
$this->mysqli = new mysqli($host, $user, $password, $database, $port, $socket);
if(mysqli_connect_error()){
exit('Impossibile connettersi al DataBase'.$mysqli_connect_error);
} else {
$this->mysqli->set_charset($charset);
}
return true;
}
// Per Disconnetterci
public function disconnect(){
$this->mysqli->close();
return true;
}