Buongiorno,
rieccomi qui. Sto aggiornando un po' di pagine per aggiornare tutto da MySql a MySqli.
Nel frattempo ho cambiato la codifica delle password degli utenti autorizzati ad accedere all'area riservata.
Nel codice scritto un paio di anni fa la codifica era sha1, adesso ho inserito alcuni utenti utilizzando password_hash.
Risultato: nella tabella con gli utenti in questione alcune password sono codificate in un modo, altri in un altro.
Allora ho cambiato il file di verifica che viene richiamato dopo aver inserito le credenziali di accesso con un doppio controllo.
Però non funziona con le nuove password (quelle inserite con password_hash).
Questa è la pagina di verifica:
Ovviamente qualcosa non va in quanto tutto si ferma su questa pagina senza alcun redirect...
Dove sbaglio?
Grazie
Maurizio
rieccomi qui. Sto aggiornando un po' di pagine per aggiornare tutto da MySql a MySqli.
Nel frattempo ho cambiato la codifica delle password degli utenti autorizzati ad accedere all'area riservata.
Nel codice scritto un paio di anni fa la codifica era sha1, adesso ho inserito alcuni utenti utilizzando password_hash.
Risultato: nella tabella con gli utenti in questione alcune password sono codificate in un modo, altri in un altro.
Allora ho cambiato il file di verifica che viene richiamato dopo aver inserito le credenziali di accesso con un doppio controllo.
Però non funziona con le nuove password (quelle inserite con password_hash).
Questa è la pagina di verifica:
PHP:
<?php session_start();
include 'connect3.php';
$username = $_POST['username'];
$pwd = $_POST['password'];
//sha1 cifra la password anche qui in questo modo corrisponde con quella del db
$password = sha1($pwd);
// qui invece ricavo la password con la nuova codifica
$hashedpassword = password_hash($pwd, PASSWORD_DEFAULT);
if (!$result = $connessione->query("SELECT * FROM utentibo WHERE userName = '$username' AND (password = '$password' OR password = '$hashedpassword')")) {
echo "Errore della query: " . $connessione->error . ".";
exit();
}else{
// echo "e qui ancora bene"."<br>";
// conteggio dei record
if($result->num_rows > 0) {
// conteggio dei record restituiti dalla query
while($row = $result->fetch_array(MYSQLI_ASSOC))
{
$cod = $row['userName'];
//$unico = $row['unico'];
if ($cod == "") {
$trovato = 0;
}else{$trovato = 1;}
/* Username e password corrette */
if($trovato === 1) {
/*Registro la sessione*/
$_SESSION['autorizzato'];
$_SESSION["autorizzato"] = sha1($cod + $unico);
/*Registro il nome dell'utente*/
$_SESSION['cod'] = $cod;
/*Redirect alla pagina riservata*/
echo '<script language=javascript>document.location.href="partenza.php"</script>';
} else {
/*Username e password errati, redirect alla pagina di login*/
echo '<script language=javascript>document.location.href="index.php"</script>';
}
}
// liberazione delle risorse occupate dal risultato
$result->close();
}
}
// chiusura della connessione
$connessione->close();
?>
Ovviamente qualcosa non va in quanto tutto si ferma su questa pagina senza alcun redirect...
Dove sbaglio?
Grazie
Maurizio