Try booting as a single user and check /etc/passwd to make sure that your user has a login shell. it is usually /bin/bash
A user with no login rights is given the shell /sbin/nologin
To boot into single user mode, edit the kernel arguments from the grub menu and add a space then 1 to the end of the line. This will log you in as root with no GUI.
Check the /etc/passwd file and edit it if necessary. If it appears to be correct, try running telinit 3 which takes you to run level 3. Log in as your user and try running startx.
Last edited by smoker; 10-02-2010 at 05:47 AM.