Puede ser que estés usando register_globlas a ON y que uses una versión de PHP inferior a PHP 4.1.0 .. Por eso (en teoria) .. te pasa "directo" tu $pass a tu consulta SQL pues justo a esa variable no le haces ningun proceso que previamente hagas algo como $pass=$_POST['pass'] ... (el array superglobal $_POST (entre otros) no apareció en PHP hasta la versión mencionada del mismo).
Si fuera el caso ese .. usa $HTTP_POST_VARS['varible'] y si tienes oportunidad .. actualiza la versión de PHP ...
Otro detalle ...
Usa:
Código PHP:
if (empty($_POST['variable']) or empty($_POST['otravariable'] ....)
En lugar de tus !$_POST['variable'] .. empty() te dice si la variable está definida y con valor distinto a NULL ('') o 0 .. Tambien tienes isset() que sólo mira si está o no definida una variable ... (puedes "negarlo" igualmetne con !empty() por si te hace falta ..)
Un saludo,
pd: En las FAQ's (de las primeras) se trata este tema ..