gathers info, does some error checking, and sends user information to server