Example #1
0
 /** 
  * Verifica se l'username $username non sia già in possesso 
  * da un altro utente (cliente o admin)
  * @param string $username
  * @param User $user
  * @return true if already used otherwise false
  */
 public function checkIfUsernameIsAlreadyUsed($username, User $user)
 {
     $mysqli = Db::getInstance()->connectDb();
     if (!isset($mysqli)) {
         error_log("[checkIfUsernameIsAlreadyUsed] impossibile inizializzare il database");
         $mysqli->close();
         return null;
     }
     switch ($user->getRuolo()) {
         case User::Cliente:
             $query = "select count(*) from (\n                    (select username from clienti \n                        where id <> ?) \n                        UNION ALL \n                    (select username from admins) \n                    )   dt \n                    where username = ?";
             break;
         case User::Admin:
             $query = "select count(*) from (\n                    (select username from clienti) \n                        UNION ALL \n                    (select username from admins \n                        where id <> ?) \n                    )   dt \n                    where username = ?";
             break;
         default:
             return null;
     }
     $stmt = $mysqli->stmt_init();
     $stmt->prepare($query);
     if (!$stmt) {
         error_log("[checkIfUsernameIsAlreadyUsed] impossibile" . " inizializzare il prepared statement");
         $mysqli->close();
         return null;
     }
     if (!$stmt->bind_param('is', $user->getId(), $username)) {
         error_log("[checkIfUsernameIsAlreadyUsed] impossibile" . " effettuare il binding in input");
         $mysqli->close();
         return null;
     }
     if (!$stmt->execute()) {
         error_log("[checkIfUsernameIsAlreadyUsed] impossibile" . " eseguire lo statement");
         return null;
     }
     $count = 0;
     $bind = $stmt->bind_result($count);
     if (!$bind) {
         error_log("[checkIfUsernameIsAlreadyUsed] impossibile" . " effettuare il binding in output");
         return null;
     }
     if (!$stmt->fetch()) {
         return null;
     }
     $stmt->close();
     //        echo "numero: " . $count . '<br>';
     return $count < 1 ? false : true;
 }
Example #2
0
 /**
  * Salva i dati relativi ad un utente sul db
  * @param User $user
  * @return il numero di righe modificate
  */
 public function salva(User $user)
 {
     $mysqli = Db::getInstance()->connectDb();
     if (!isset($mysqli)) {
         error_log("[salva] impossibile inizializzare il database");
         $mysqli->close();
         return 0;
     }
     $stmt = $mysqli->stmt_init();
     $count = 0;
     switch ($user->getRuolo()) {
         case User::Cliente:
             $count = $this->salvaCliente($user, $stmt);
             break;
         case User::Admin:
             $count = $this->salvaAdmin($user, $stmt);
     }
     $stmt->close();
     $mysqli->close();
     return $count;
 }