i didnt notice anything right off, but you have so many functions its hard to tell where something could be wrong. It could be in any function.
Are you getting any errors, can you share the functions with us ?
so you have checked the value of
$email && $pass && $mysqli
And they all have the correct value?
if they all have the correct value then the break in the code is after that i would think because it made it that far. So check your functions, db classes and such. You might try removing all the functions and code it freehand and see if it works, if it does then you know its your functions or classes.