1. Are you confident in yourself? It could be a confidence issue.
2. You could be looking at the wrong girls. Fall in love with the person not the looks.
3. You can't trust girls on a website. They aren't going to tell you you are ugly. If you ask any girl if you are cute, she's going to say yes because she doesn't want to be mean. Either that or she will not answer at all. I'm not saying you aren't cute because you very well could be and maybe the girls were not just trying to boost your self esteem.
4. You may not be picking up on the signals girls are throwing at you and if you do not respond to signals, girls are going to think you are not into them and they are going to give up and move on. And that may be a reason these girls are "treating you like shit". They could feel like they are sending out obvious signals and they may be frustrated that you don't seem to pick up on them.
5. Are you even trying to show interest in the girls you find attractive? A lot of times girls will just wait for the guys to show interest. You have to make an effort to flirt and get to know girls you are attracted to. They are not going to know that you are interested if you don't make an effort to show them. Don't just sit around waiting for a girl to chat you up. Make the first move and do the work yourself. Many girls are still under the impression that the guys should make the first move.
Are these girls that are saying you'd be like a perfect boyfriend?
If so then maybe they just don't want to loose you as a friend, it isn't the right time, they don't think you like them, they're intimidated by you, or that you're TOO perfect and they don't feel that they are good enough for you.
Maybe if they're looking at you like you're shit then maybe that's just the kind of attitude they have, you did something to piss em off.
If girls are telling you online that you're hot then that could be a chance that they are being a tease? or they don't want to hurt your feelings.
wait wait wait.. am I reading this right or am I hallucinating?
you're taking what girls say on a WEBSITE and assuming its true? dude you do know that getting a high score on "are you a good boyfriend" quizzes doesn't actually MEAN you are a good boyfriend right?
putting it kindly, you are plainly an idiot.
theres no such thing as a perfect guy. there's the confident but sensitive guy who'd be pretty high up most girls' lists but just being sensitive to things girls like about guys in the long term doesn't mean you're going to get girls. just assuming that means you probably won't get any girls.. EVER..
most girls, most people, if they read what you wrote up there would be like WTF. no wonder girls look at you like shit if that's how you think. you probably REEK of desperation around girls. you don't have to show you are desperate, girls will sniff it off you whether you hide it or not.
Who knows... maybe you're not exactly the same online as you are in real life. Or, the girls that know you have bad taste. Really man, who knows... just take it easy. I'm sure someone out there appreciates you. You just haven't found her yet, or maybe, she's been right under your nose all along...
Opinions vary from person to person, if some people think you're hot, great. If others don't, then that's their problem. If they look at you like you're a piece of shit, that's likely them, not you.
Don't take it personally or put yourself down because of it. It doesn't matter what they think, but it's more how you view yourself than how others do. If you think that you look good, and you know it, screw what others think.