Mmmm.. al hacer la consulta.. no significa que se crearan automaticamente variables como crees.. por ej..
la variable $GM no existe y no se ha creado.. (if($data['1'] != $GM))
tampoco la variable $password se ha creado (if($data['password'] != $password))
entonces especificamente en esas lineas ya tienes errores para empezar..
En cuanto a la consulta.. no comprendo porque no utilizas al password.. sino que lo comparas cuando ya tienes una respuesta del query.. la forma mas idonea seria incluyendo el usuario y el password dentro de la consulta.. si hay respuesta entonces procedes a crear las variables de sesion.. de lo contrario.. mandas al error..
yo la dejaria asi:
Código:
SELECT username,password,GM FROM user WHERE username = '".$username."' AND password = '".$password."'