Hola buenas estoy haciendo un registro y me sale el error y me estoy matando a buscarlo pero no encuentro la solución..

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /Applications/MAMP/htdocs/bloh/includes/login_action.php on line 75

Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/bloh/header.php:41) in /Applications/MAMP/htdocs/bloh/includes/login_action.php on line 80


El código de login_action es este:

<?php

function login(){

if (isset($_POST['user']) && isset($_POST['password'])) {

//guardolasvariables
$user = htmlentities($_POST['user'],ENT_QUOTES);
$pass = htmlentities($_POST['password'],ENT_QUOTES);
//verifico
if ($_POST['user'] === '') {
echo "<div class='alert'>Tienes que ingresar un nombre de usuario</div>";
}elseif ($_POST['password'] === ''){
echo "<div class='alert'>Tienes que ingresar una contraseña</div>";
}else{
$sql = "SELECT * FROM usuarios WHERE Nombre = '$user' AND Pass = '$pass'";
$query = mysqli_query(conexion(),$sql);
$rows = mysqli_num_rows($query);
if ($rows > 0){
echo "<div class='alert'>Has ingresado</div>";
}else{
echo "<div class='alert>No existe el usuario</div>";
}
}
}
}

//funcion encrypta
class Encrypter {

private static $Key = "blog";

public static function encrypt ($input) {
$output = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(Encrypter::$Key), $input, MCRYPT_MODE_CBC, md5(md5(Encrypter::$Key))));
return $output;
}

public static function decrypt ($input) {
$output = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(Encrypter::$Key), base64_decode($input), MCRYPT_MODE_CBC, md5(md5(Encrypter::$Key))), "\0");
return $output;
}

}

function register(){
if (isset($_POST['user']) && isset($_POST['email']) && isset($_POST['password']) && isset($_POST['confirm'])) {
//captura datos variables post
$user = htmlentities($_POST['user'],ENT_QUOTES);
$pass = htmlentities($_POST['password'],ENT_QUOTES);
$confirm = htmlentities($_POST['confirm'],ENT_QUOTES);
$email = htmlentities($_POST['email'],ENT_QUOTES);
//verifico
if ($_POST['user'] === '') {
echo "<div class='alert'>Tienes que ingresar un nombre de usuario</div>";
}elseif ($_POST['password'] === ''){
echo "<div class='alert'>Tienes que ingresar una contraseña</div>";
}elseif ($_POST['confirm'] === '') {
echo "<div class='alert'>Tienes que confirmar la contraseña</div>";
}elseif ($_POST['email'] === '') {
echo "<div class='alert'>Tienes que ingresar el correo</div>";
}else{
if ($pass === $confirm) {
$sql_conf = "SELECT * FROM usuarios WHERE Nombre = '$user' AND Email = '$email'";
$query = mysqli_query(conexion(),$sql_conf);
$rows = mysqli_num_rows($query);
if ($rows > 0) {
echo "<div class='alert'>El usuario o la contraseña ya existe</div>";
}else{
$pass_c = Encrypter::encrypt($pass);
$sql_insert = "INSERT INTO usuarios (Nombre, Pass, Email) VALUES ('$user','$pass_c','$email')";
$query = mysqli_query(conexion(),$sql_insert);
if ($query) {
$sql_ex = "SELECT * FROM usuarios WHERE Nombre = 'user'";
$query = mysqli_query(conexion(),$query);
while ($i = mysqli_fetch_array($query)) {
session_start();
$_SESSION['id'] = $i['id_usuario'];
$_SESSION['user'] = $i['Nombre'];
}
header('Location:admin.php');
}else{
echo "<div class='alert'>Ocurrió un error al registrarse/div>";
}
}
}else{
echo "<div class='alert'>Las contraseñas no son iguales</div>";
}
}
}
}