// Mi disconnetto dal database
    // Verifico se i dati sono corretti per poi dare un errore
    if ($conta <= 0) {
        $text = 'I dati inseriti non sono associati a nessun account. Riprova verificando i dati immessi.';
        $smarty->assign("titolo", "Recupera password");
        $smarty->assign("contents", $text);
        $smarty->assign("url_cms", $cms->url_cms());
        $smarty->assign("url_smartytpl", $cms->url_smartytpl());
        $smarty->assign("cmsversion", $cms->cmsversion());
        $smarty->display("admin/index/index2.tpl");
        exit;
    }
    // Genero una nuova password con l'RNG e la inserisco nel database
    $rng = rng();
    // Creo la password
    $nuovapassword = $func->hash($rng);
    // La passo per un algoritmo di hash
    $db->connettidb();
    // Mi connetto al database
    $query = $db->query("UPDATE utenti SET password='******' WHERE nickname='{$nickname}' AND email='{$email}'");
    $db->disconnettidb();
    // Mi disconnetto dal database
    // Invio la password via email
    $mittente = $cms->email();
    $destinatario = $func->rescape($email);
    $oggetto = 'Recupero password - ' . $cms->nomesito();
    $testo = 'Ciao ' . $nickname . '.
Mediante il servizio Recupera password di ' . $cms->nomesito() . ' hai richiesto il recupero della tua password.
Essa è stata generata automaticamente e potrai modificarla tramite l\'apposita pagina Modifica password.

La tua password è la seguente: ' . $rng . '
Пример #2
0
    $smarty->assign("titolo", "Login");
    $smarty->assign("cookie", $db->auth($_COOKIE[$func->cookie()]));
    $smarty->assign("grado", $db->grado($_COOKIE[$func->cookie()]));
    $smarty->assign("contents", $text);
    $smarty->assign("url_cms", $cms->url_cms());
    $smarty->assign("url_smartytpl", $cms->url_smartytpl());
    $smarty->assign("cmsversion", $cms->cmsversion());
    $smarty->display("admin/index/index2.tpl");
    exit;
}
// Prelevo i dati inseriti nel login
if (isset($_POST['login'])) {
    $nickname = $func->escape($_POST['nickname']);
    $password = $func->escape($_POST['password']);
    // Elimino gli spazi superflui e inserisco gli slash
    $password = $func->hash($password);
    // Converto in un algoritmo di hash
    // Mi connetto al database
    $db->connettidb();
    // Creo la query cercando una corrispondenza tra i dati di login
    $query = $db->query("SELECT nickname,password FROM utenti WHERE nickname='{$nickname}' AND password='******'");
    // Verifico se la query ha dato risultati
    $risultati = $db->conta($query);
    // Se non ci sono state corrispondenze dò il messaggio di login fallito
    if ($risultati <= 0) {
        $text = 'Il login non è stato effettuato.<br />Controlla i dati immessi e riprova.';
        // Visualizzo la pagina
        $smarty->assign("titolo", "Login");
        $smarty->assign("cookie", $db->auth($_COOKIE[$func->cookie()]));
        $smarty->assign("grado", $db->grado($_COOKIE[$func->cookie()]));
        $smarty->assign("contents", $text);
Пример #3
0
function loginUser()
{
    $data = Functions::getJSONData();
    $nickname = Functions::elt($data, 'nickname');
    $password = Functions::elt($data, 'password');
    $expiration = Functions::elt($data, 'expiration');
    $actionCount = Functions::elt($data, 'actionCount');
    if (is_null($nickname) || is_null($password) || is_null($expiration) || is_null($actionCount)) {
        Functions::setResponse(400);
    }
    $whereClause = 'nickname = :nickname';
    $params = array(array('id' => ':nickname', 'value' => $nickname));
    $custList = Customer::search($whereClause, $params);
    if (!count($custList)) {
        Functions::setResponse(403);
    }
    $customer = $custList[0];
    if (Functions::hash($password) == $customer->get('password')) {
        $t = new Token();
        $t->set('customerId', $customer->get('id'));
        $t->set('value', Functions::randomHash());
        $t->set('expiration', time() + floor($expiration / 1000));
        $t->set('actionCount', $actionCount);
        $t->save();
        return $t;
    } else {
        Functions::setResponse(403);
    }
}
$func = new Functions();
$email = new Emailer();
// Prima di procedere controllo se l' utente è già loggato
if ($func->logged() == 0) {
    $text = 'Non risulti loggato. Devi prima effettuare il login per modificare la password.';
    // Visualizzo la pagina
    $smarty->assign("titolo", "Modifica password");
    $smarty->assign("contents", $text);
    $smarty->assign("url_cms", $cms->url_cms());
    $smarty->assign("url_smartytpl", $cms->url_smartytpl());
    $smarty->assign("cmsversion", $cms->cmsversion());
    $smarty->display("admin/index/index2.tpl");
    exit;
}
if (isset($_POST['modificapassword'])) {
    $password = $func->hash($func->escape($_POST['password']));
    $nuovapassword = $func->hash($func->escape($_POST['nuovapassword']));
    $confnuovapassword = $func->hash($func->escape($_POST['confnuovapassword']));
    $nickname = $db->nickname($_COOKIE[$func->cookie()]);
    // Confronto i dati con il database
    $db->connettidb();
    // Mi connetto al database
    $query = $db->query("SELECT password FROM utenti WHERE nickname='{$nickname}' AND password='******'");
    $conta = $db->conta($query);
    $db->disconnettidb();
    // Mi disconnetto dal database
    // Verifico se i dati sono corretti per poi dare un errore
    if ($conta <= 0) {
        $text = 'La password inserita non corrisponde a quella associata al tuo account. Se hai dimenticato la password, <a href="recuperapassword.php">recuperala</a>.';
        $smarty->assign("titolo", "Modifica password");
        $smarty->assign("contents", $text);
Пример #5
0
 public function getHash($algo = self::HASH_MD5, $fast = false)
 {
     if ($fast) {
         return Functions::hash($algo, $this->getModificationTime() . $this->path);
     }
     switch ($algo) {
         case self::HASH_MD5:
             return md5_file($this->pathAbsolute);
         case self::HASH_SHA1:
             return sha1_file($this->pathAbsolute);
         default:
             throw new FileException("Unknown file hash algorithm.");
     }
 }